Import emacs22_22.1+1.orig.tar.gz.
authorRob Browning <rlb@defaultvalue.org>
Sat, 2 Jun 2007 11:11:49 +0000 (06:11 -0500)
committerRob Browning <rlb@defaultvalue.org>
Sat, 2 Jun 2007 11:11:49 +0000 (06:11 -0500)
114 files changed:
AUTHORS
ChangeLog
INSTALL
README
configure
configure.in
etc/ChangeLog
etc/MORE.STUFF
etc/Makefile
etc/NEWS
etc/PROBLEMS
etc/TODO
etc/emacs.1
etc/emacs.py [new file with mode: 0644]
etc/etags.1
etc/fr-refcard.ps
etc/fr-refcard.tex
etc/refcard.tex
leim/ChangeLog
lib-src/ChangeLog
lib-src/makefile.w32-in
lisp/ChangeLog
lisp/ChangeLog.8
lisp/buff-menu.el
lisp/button.el
lisp/calendar/timeclock.el
lisp/cus-load.el
lisp/custom.el
lisp/dabbrev.el
lisp/dired-x.el
lisp/dired.el
lisp/dos-w32.el
lisp/emacs-lisp/easy-mmode.el
lisp/emacs-lisp/eldoc.el
lisp/emacs-lisp/rx.el
lisp/emulation/tpu-edt.el
lisp/files.el
lisp/find-dired.el
lisp/finder-inf.el
lisp/gnus/ChangeLog
lisp/gnus/gnus-diary.el
lisp/gnus/message.el
lisp/gnus/nndiary.el
lisp/hi-lock.el
lisp/image-dired.el
lisp/info.el
lisp/international/iso-cvt.el
lisp/international/mule.el
lisp/ldefs-boot.el
lisp/loaddefs.el
lisp/locate.el
lisp/log-edit.el
lisp/ls-lisp.el
lisp/mail/mailabbrev.el
lisp/mail/rmail.el
lisp/makefile.w32-in
lisp/msb.el
lisp/net/rcirc.el
lisp/paren.el
lisp/pcvs.el
lisp/printing.el
lisp/progmodes/cc-mode.el
lisp/progmodes/compile.el
lisp/progmodes/gud.el
lisp/progmodes/idlwave.el
lisp/progmodes/python.el [new file with mode: 0644]
lisp/progmodes/sh-script.el
lisp/ps-print.el
lisp/simple.el
lisp/startup.el
lisp/t-mouse.el
lisp/tar-mode.el
lisp/term/mac-win.el
lisp/textmodes/fill.el
lisp/textmodes/flyspell.el
lisp/textmodes/ispell.el
lisp/textmodes/sgml-mode.el
lisp/textmodes/table.el
lisp/time.el
lisp/tutorial.el
lisp/url/ChangeLog
lisp/url/url-mailto.el
lisp/vc-hooks.el
lisp/version.el
lisp/view.el
lisp/xt-mouse.el
lwlib/ChangeLog
mac/ChangeLog
mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings
mac/INSTALL
mac/src/Emacs.r
man/ChangeLog
man/faq.texi
msdos/ChangeLog
nt/ChangeLog
nt/INSTALL
nt/configure.bat
nt/emacs.rc
oldXMenu/ChangeLog
oldXMenu/XMakeAssoc.c
src/ChangeLog
src/buffer.c
src/editfns.c
src/gtkutil.c
src/image.c
src/insdel.c
src/m/macppc.h
src/macmenu.c
src/macterm.c
src/syntax.c
src/xdisp.c
src/xfns.c
src/xmenu.c
src/xterm.c

diff --git a/AUTHORS b/AUTHORS
index 8c543964d526124639c65f0f44e627e7d1c638e8..b88c0b69bda4c282a368a3d1d6b3ecb27357813e 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -333,10 +333,10 @@ Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el
   url-file.el url-handlers.el url-http.el url-nfs.el
 
 Chong Yidong: changed cus-edit.el simple.el files.el custom.el
-  display.texi longlines.el xdisp.c files.texi info.el keyboard.c
-  compile.el custom.texi text.texi frames.texi image-mode.el mouse.el
-  misc.texi startup.el wid-edit.el xterm.c cus-theme.el
-  and 295 other files
+  display.texi xdisp.c longlines.el files.texi info.el keyboard.c
+  compile.el custom.texi text.texi xterm.c frames.texi image-mode.el
+  mouse.el misc.texi startup.el wid-edit.el cus-theme.el
+  and 297 other files
 
 Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c
   hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el
@@ -456,9 +456,10 @@ Dave Lambert: changed sol2-5.h xfns.c xterm.c xterm.h
 
 Dave Love: wrote autoarg.el autoconf.el benchmark.el cfengine.el
   code-pages.el elide-head.el georgian.el hl-line.el latin-8.el
-  latin-9.el latin1-disp.el refill.el rfc1345.el sgml-input.el smiley.el
-  subst-big5.el subst-gb2312.el subst-jis.el subst-ksc.el tool-bar.el
-  ucs-tables.el uni-input.el utf-16.el utf-7.el utf-8-lang.el welsh.el
+  latin-9.el latin1-disp.el python.el refill.el rfc1345.el sgml-input.el
+  smiley.el subst-big5.el subst-gb2312.el subst-jis.el subst-ksc.el
+  tool-bar.el ucs-tables.el uni-input.el utf-16.el utf-7.el utf-8-lang.el
+  welsh.el
 and changed configure.in Makefile.in help.el fortran.el browse-url.el
   mule-cmds.el simple.el xterm.c cus-edit.el files.el info.el mule.el
   wid-edit.el fns.c vc.el rfc2047.el bindings.el cus-start.el buffer.c
@@ -549,8 +550,8 @@ and changed w32menu.c w32term.c close.png close.xpm empty.png empty.xpm
 
 David Reitter: wrote mailclient.el
 and changed commands.h cus-edit.el easy-mmode.el emacsbug.el
-  emacsclient.c keymap.c macterm.c menu-bar.el minibuf.c sendmail.el
-  url-http.el
+  emacsclient.c keymap.c macterm.c menu-bar.el minibuf.c python.el
+  sendmail.el url-http.el
 
 David Robinson: changed menu-bar.el x-win.el
 
@@ -560,6 +561,8 @@ David Vazquez: changed m4-mode.el
 
 David Z. Maze: changed nnml.el nnrss.el
 
+Davis Herring: changed timeclock.el
+
 Deanna Phillips: changed configure.in
 
 Decklin Foster: changed nngateway.el
@@ -596,7 +599,7 @@ Didier Verna: wrote gnus-diary.el nndiary.el
 and changed nntp.el gnus-art.el gnus-msg.el gnus-group.el gnus-start.el
   gnus-sum.el gnus-xmas.el gnus-picon.el gnus-salt.el cus-edit.el rect.el
   dgnushack.el gnus-agent.el gnus-ems.el gnus-fun.el gnus-topic.el
-  message.el nnmail.el nnmbox.el smiley.el
+  gnus.texi message.el nnmail.el nnmbox.el smiley.el
 
 Dirk Herrmann: changed bibtex.el
 
@@ -633,7 +636,7 @@ and changed diary.el tex-mode.el cal-tex.el cal-mayan.el holiday.el
 Edward O'connor: changed erc.el erc-viper.el erc-log.el erc-track.el
   viper.el erc-backend.el erc-chess.el erc-dcc.el erc-ezbounce.el
   erc-goodies.el erc-list.el erc-macs.el erc-match.el erc-ring.el
-  erc-stamp.el goto-addr.el
+  erc-stamp.el goto-addr.el python.el
 
 Edwin Steiner: changed gnus-nocem.el
 
@@ -648,9 +651,9 @@ Eli Tziperman: wrote rmail-spam-filter.el
 
 Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el
 and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c
-  startup.el mainmake.v2 config.bat menu-bar.el pc-win.el rmail.el
-  simple.el msdos.h internal.el xfaces.c emacs.c frame.c dosfns.c
-  faces.el frame.el and 531 other files
+  startup.el mainmake.v2 config.bat rmail.el menu-bar.el pc-win.el
+  simple.el msdos.h internal.el xfaces.c emacs.c frame.c INSTALL dosfns.c
+  faces.el and 532 other files
 
 Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
   sh-script.el text.texi
@@ -745,8 +748,8 @@ Francesc Rocher: changed cus-start.el macterm.c w32term.c xdisp.c xterm.c
 
 Francesco Potort\e,Al\e(B: wrote cmacexp.el
 and changed etags.c man.el delta.h undigest.el etags.1 comint.el
-  configure.in uniquify.el latin-post.el rmail.el Makefile.in etags.el
-  latin-alt.el maintaining.texi sgml-mode.el data.c european.el
+  configure.in uniquify.el latin-post.el maintaining.texi rmail.el
+  Makefile.in etags.el latin-alt.el sgml-mode.el data.c european.el
   filelock.c files.el generic-x.el gud.el and 43 other files
 
 Francis J. Wright: wrote woman.el
@@ -851,9 +854,9 @@ Giuseppe Scrivano: changed buffer.c configure.in sysdep.c xsmfns.c
 
 Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el
   calendar.texi appt.el sh-script.el Makefile.in timeclock.el cal-menu.el
-  files.el complete.el configure.in startup.el MACHINES abbrevs.texi
-  cal-hebrew.el cal-islam.el emacs.texi fr-refcard.tex holidays.el
-  and 145 other files
+  files.el complete.el configure.in programs.texi startup.el MACHINES
+  abbrevs.texi cal-hebrew.el cal-islam.el emacs.texi faq.texi
+  and 151 other files
 
 Glynn Clements: wrote gamegrid.el snake.el tetris.el
 
@@ -995,8 +998,8 @@ Ivar Rummelhoff: wrote winner.el
 Iwamuro Motonori: changed gnus-kill.el
 
 J.D. Smith: changed idlwave.el idlw-shell.el idlw-help.el idlw-rinfo.el
-  idlw-toolbar.el comint.el vc.el bibtex.el files.texi hideshow.el
-  idlw-complete-structtag.el idlwave.texi misc.texi mouse.el
+  idlw-toolbar.el comint.el idlwave.texi vc.el bibtex.el files.texi
+  hideshow.el idlw-complete-structtag.el misc.texi mouse.el
 
 Jaap-Henk Hoepman: changed mm-decode.el
 
@@ -1174,8 +1177,8 @@ Joel Ray Holveck: changed gnus-sum.el info.el
 Joev Dubach: changed nntp.el
 
 Johan Bockg\e,Ae\e(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el
-  erc-nickserv.el erc-ring.el erc-speak.el erc-track.el simple.el
-  align.el bytecomp.el calendar.el cl.texi custom.el dired-aux.el
+  custom.el erc-nickserv.el erc-ring.el erc-speak.el erc-track.el
+  simple.el align.el bytecomp.el calendar.el cl.texi dired-aux.el
   dired-x.el display.texi erc-bbdb.el erc-button.el erc-compat.el
   erc-dcc.el and 16 other files
 
@@ -1280,9 +1283,9 @@ Juan Le\e,As\e(Bn Lahoz Garc\e,Am\e(Ba: wrote wdired.el
 and changed files.el perl-mode.el
 
 Juanma Barranquero: changed makefile.w32-in subr.el faces.el help-fns.el
-  files.el buffer.c simple.el w32fns.c emacsclient.c replace.el
+  files.el simple.el buffer.c w32fns.c emacsclient.c replace.el
   vhdl-mode.el bs.el cperl-mode.el eval.c org.el process.c xdisp.c
-  idlwave.el sh-script.el window.c ada-mode.el and 628 other files
+  idlwave.el sh-script.el window.c ada-mode.el and 629 other files
 
 Juergen Hoetzel: changed url-handlers.el
 
@@ -1327,11 +1330,11 @@ Kailash C. Chowksey: changed HELLO Makefile.in ind-util.el kannada.el
 
 Kanematsu Daiji: changed nnimap.el
 
-Karl Berry: changed info.texi emacs.texi elisp.texi anti.texi
-  display.texi emacs-xtra.texi filelock.c gnu.texi mule.texi text.texi
-  building.texi cmdargs.texi copyright.el custom.texi customize.texi
-  dired.c faq.texi frames.texi help.texi lists.texi loading.texi
-  and 71 other files
+Karl Berry: changed emacs.texi info.texi elisp.texi anti.texi
+  display.texi emacs-xtra.texi filelock.c gnu.texi mule.texi texinfo.tex
+  text.texi building.texi cmdargs.texi control.texi copyright.el
+  custom.texi customize.texi dired.c dired.texi faq.texi frames.texi
+  and 72 other files
 
 Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el
   jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el
@@ -1695,10 +1698,9 @@ Martin Lorentzon: changed vc.el vc-cvs.el vc-hooks.el vc-rcs.el
 Martin Neitzel: changed sc.el
 
 Martin Rudalics: changed cus-edit.el wid-edit.el cus-start.el files.el
-  flyspell.el font-lock.el complete.el insdel.c macmenu.c syntax.c
-  w32menu.c wdired.el whitespace.el window.el xdisp.c xmenu.c
-  backups.texi buffer.c buffer.h casefiddle.c cc-mode.el
-  and 36 other files
+  flyspell.el font-lock.el complete.el insdel.c ispell.el macmenu.c
+  syntax.c table.el w32menu.c wdired.el whitespace.el window.el xdisp.c
+  xmenu.c backups.texi buffer.c buffer.h and 36 other files
 
 Martin Stjernholm: wrote cc-bytecomp.el
 and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el
@@ -1837,10 +1839,10 @@ Michal Jankowski: changed insdel.c keyboard.c
 
 Michal Nazarewicz: changed ispell.el
 
-Micha\e,Ak\e(Bl Cadilhac: changed ido.el fill.el ispell.el anti.texi battery.el
-  blackbox.el bs.el cmuscheme.el complete.el cus-edit.el dispnew.c
-  faq.texi flyspell.el footnote.el glasses.el info.el life.el lpr.el
-  make-mode.el misc.texi pong.el and 9 other files
+Micha\e,Ak\e(Bl Cadilhac: changed ido.el fill.el ispell.el Makefile anti.texi
+  battery.el blackbox.el bs.el cmuscheme.el complete.el cus-edit.el
+  dispnew.c faq.texi flyspell.el footnote.el fr-refcard.ps fr-refcard.tex
+  glasses.el info.el life.el lpr.el and 12 other files
 
 Michelangelo Grigni: wrote ffap.el
 and changed gnus-score.el
@@ -1875,7 +1877,7 @@ Miles Bader: wrote button.el image-file.el macroexp.el minibuf-eldef.el
 and changed comint.el faces.el simple.el editfns.c xfaces.c info.el
   xdisp.c minibuf.c wid-edit.el xterm.c subr.el window.el cus-edit.el
   diff-mode.el dispextern.h quick-install-emacs xfns.c help.el lisp.h
-  textprop.c bytecomp.el and 241 other files
+  textprop.c bytecomp.el and 242 other files
 
 Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el
   mule-conf.el mule.el pop3.el
@@ -1940,6 +1942,8 @@ Niimi Satoshi: changed pp.el search.c
 
 Niklas Morberg: changed nnweb.el gnus-art.el nnimap.el spam.el
 
+Nikolaj Schumacher: changed compile.el rx.el
+
 Noah Friedman: wrote eldoc.el rlogin.el rsz-mini.el type-break.el
 and changed comint.el emacs-buffer.gdb files.el mailabbrev.el sendmail.el
   subr.el timer.el yow.el battery.el complete.el config.in configure.in
@@ -2061,7 +2065,7 @@ and changed iso-acc.el process.c sysdep.c
 
 Per Cederqvist: wrote ewoc.el
 and changed vc.el vc-hooks.el diff-mode.el etags.c etags.el forms.el
-  hexl.el
+  hexl.el process.c
 
 Per Persson: wrote gnus-vm.el
 
@@ -2287,7 +2291,7 @@ Rune Kleveland: changed xfns.c
 Russ Allbery: changed message.el
 
 Ryan Yeske: wrote rcirc.el
-and changed ffap.el rmailsum.el simple.el testcover.el
+and changed ffap.el ispell.el rmailsum.el simple.el testcover.el
 
 Ryszard Kubiak: changed ogonek.el
 
@@ -2398,8 +2402,8 @@ and changed comint.el font-lock.el shell.el rmail.el fortran.el
 
 Skip Collins: changed w32fns.c w32term.c w32term.h
 
-Slawomir Nowaczyk: changed python.el TUTORIAL.pl flyspell.el ls-lisp.el
-  w32proc.c
+Slawomir Nowaczyk: changed emacs.py python.el TUTORIAL.pl flyspell.el
+  ls-lisp.el w32proc.c
 
 Spencer Thomas: changed dabbrev.el emacsclient.c emacsserver.c gnus.texi
   server.el tcp.c unexec.c
@@ -2412,9 +2416,9 @@ Stefan Monnier: wrote bibtex.el cvs-status.el diff-mode.el log-edit.el
   log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el
   reveal.el smerge-mode.el
 and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h
-  keyboard.c keymap.c tex-mode.el fill.el alloc.c compile.el files.el
-  regex.c simple.el easy-mmode.el info.el syntax.c vc-hooks.el xdisp.c
-  sh-script.el and 518 other files
+  keyboard.c fill.el keymap.c tex-mode.el alloc.c compile.el files.el
+  regex.c simple.el easy-mmode.el syntax.c vc-hooks.el info.el xdisp.c
+  sh-script.el and 519 other files
 
 Steinar Bang: changed imap.el
 
@@ -2423,7 +2427,7 @@ Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi
 
 Stephen A. Wood: changed fortran.el
 
-Stephen Berman: changed allout.el recentf.el
+Stephen Berman: changed allout.el find-dired.el recentf.el
 
 Stephen C. Gilardi: changed configure.in
 
@@ -2459,7 +2463,7 @@ Steve Youngs: changed mh-utils.el mh-xemacs-compat.el dgnushack.el
 
 Steven E. Harris: changed nnheader.el
 
-Steven Huwig: changed python.el
+Steven Huwig: changed emacs.py python.el
 
 Steven L. Baur: wrote earcon.el footnote.el gnus-audio.el gnus-setup.el
 and changed gnus-xmas.el gnus-msg.el add-log.el dgnushack.el edebug.el
@@ -2529,7 +2533,7 @@ Terrence Brannon: wrote landmark.el
 
 Terry Jones: wrote shadow.el
 
-Tetsurou Okazaki: changed xterm.c
+Tetsurou Okazaki: changed log-edit.el xterm.c
 
 Theodore Jump: changed w32-win.el w32faces.c
 
@@ -2610,6 +2614,8 @@ Toru Tomabechi: wrote tibet-util.el tibetan.el
 
 Toshiaki Nomura: changed uxpds.h
 
+Trent Buck: changed rcirc.el
+
 Trey Jackson: changed spam-stat.el
 
 Triet Hoai Lai: changed vntelex.el viet-util.el vietnamese.el
@@ -2632,8 +2638,8 @@ and changed calendar.texi newsticker.texi Makefile.in
 
 Ulrich Leodolter: changed w32proc.c
 
-Ulrich Mueller: changed gud.el Makefile.in case-table.el fortran.el
-  iso-acc.el sysdep.c
+Ulrich Mueller: changed gud.el Makefile.in XMakeAssoc.c case-table.el
+  fortran.el iso-acc.el sysdep.c
 
 Ulrik Vieth: wrote meta-mode.el
 and changed files.el
@@ -2679,7 +2685,7 @@ Werner Lemberg: wrote sisheng.el vntelex.el
 and changed TUTORIAL.de Makefile.in calc.texi chinese.el czech.el
   european.el idlwave.el reftex-vars.el reftex.el reftex.texi slovak.el
   supercite.el .cvsignore advice.el calc-forms.el calc-sel.el calendar.el
-  china-util.el cl-macs.el cl.texi complete.el and 43 other files
+  china-util.el cl-macs.el cl.texi complete.el and 44 other files
 
 Wes Hardaker: changed gnus-score.el gnus-art.el gnus-sum.el gnus-win.el
 
@@ -2730,11 +2736,13 @@ Yagi Tatsuya: changed gnus-art.el gnus-start.el
 
 Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h
   macmenu.c macgui.h image.c macselect.c keyboard.c xdisp.c makefile.MPW
-  config.h emacs.c Makefile.in macos.texi darwin.h xfaces.c INSTALL
+  config.h emacs.c INSTALL Makefile.in macos.texi darwin.h xfaces.c
   dispnew.c alloc.c and 77 other files
 
 Yann Dirson: changed imenu.el
 
+Yavor Doganov: changed emacs.1 etags.1
+
 Yoichi Nakayama: changed browse-url.el finder.el man.el rfc2368.el
 
 Yoni Rabkin Katzenell: changed faces.el whitespace.el
index 1540894a199ddea91e55645b680e2cea3bfbd5df..c53ed83f0679d47ec826725bc0f43ca5ca6ab5f9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
+2007-05-03  Glenn Morris  <rgm@gnu.org>
+
+       * configure: Tweak message about the absence of shell functions.
+
+2007-04-24  Juanma Barranquero  <lekktu@gmail.com>
+
+       * INSTALL (DETAILED BUILDING AND INSTALLATION): Fix typo.
+
 2007-04-19  Glenn Morris  <rgm@gnu.org>
 
        * configure.in: Signal error if Xaw libs are missing in a Lucid
@@ -25,7 +37,7 @@
        * configure.in: Restore support for hp800 (removed 2007-01-27)
        following clarification of legal status.
 
-2007-03-22  Joe Buehler  <jbuehler@spirentcom.com> (tiny change)
+2007-03-22  Joe Buehler  <jbuehler@spirentcom.com>  (tiny change)
 
        * configure.in: Add support for AIX4.3 on IBM RS6000.
 
diff --git a/INSTALL b/INSTALL
index ce4359f86da8c2d230e18f8ef9a9aed892605f50..80ee412543b13282dd5a56212ccc9339b42ea19d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -298,13 +298,13 @@ or more of these options:
   --without-png        for PNG image support
 
 Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d
-scroll bars.  
+scroll bars.
 
 Use --without-xim to inhibit the default use of X Input Methods.  In
 this case, the X resource useXIM can be used to turn on use of XIM.
 
 Use --disable-largefile omits support for files larger than 2GB on
-systems which support that.  
+systems which support that.
 
 Use --without-sound to disable sound support.
 
@@ -364,8 +364,8 @@ Some tests might fail because the compiler should look in special
 directories for some header files, or link against optional
 libraries, or use special compilation options.  You can force
 `configure' and the build process which follows it to do that by
-setting the variables CPPFLGS, CFLAGS, LDFLAGS, LIBS, CPP and CC before
-running `configure'.  CPP is the command which invokes the
+setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, CPP and CC
+before running `configure'.  CPP is the command which invokes the
 preprocessor, CPPFLAGS lists the options passed to it, CFLAGS are
 compilation options, LDFLAGS are options used when linking, LIBS are
 libraries to link against, and CC is the command which invokes the
@@ -384,10 +384,10 @@ to look in `/bar/mylib' for libraries, pass the -O3 optimization
 switch to the compiler, and link against libfoo.a and libbar.a
 libraries in addition to the standard ones.
 
-For some libraries, like Gtk+, fontconfig and ALSA, `configure' use 
-pkg-config to find where those libraries are installed. 
-If you want pkg-config to look in special directories, you have to set 
-the environment variable PKG_CONFIG_PATH to point to the directories 
+For some libraries, like Gtk+, fontconfig and ALSA, `configure' use
+pkg-config to find where those libraries are installed.
+If you want pkg-config to look in special directories, you have to set
+the environment variable PKG_CONFIG_PATH to point to the directories
 where the .pc-files for those libraries are.
 For example:
 
diff --git a/README b/README
index 333cabef40957aa6b573fc641a96b399905c69d4..80cc1a5032691d03c981039a769faa2fa91c57ef 100644 (file)
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
 See the end of the file for license conditions.
 
 
-This directory tree holds version 22.0.99 of GNU Emacs, the extensible,
+This directory tree holds version 22.1 of GNU Emacs, the extensible,
 customizable, self-documenting real-time display editor.
 
 The file INSTALL in this directory says how to build and install GNU
index 9dd401b4d12ff33d5adf57e58c86438e7b35e1c2..1e0c418ed34034aed782c4bbedfb13506cb33cd4 100755 (executable)
--- a/configure
+++ b/configure
@@ -412,10 +412,10 @@ else
 fi
 
 test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell autoconf@gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
+  echo Please tell bug-autoconf@gnu.org about your system,
+  echo including any error possibly output before this message.
+  echo This can help us improve future autoconf versions.
+  echo Configuration will now proceed without shell functions.
 }
 
 
@@ -683,7 +683,6 @@ LIBSOUND
 PKG_CONFIG
 ALSA_CFLAGS
 ALSA_LIBS
-
 CFLAGS_SOUND
 SET_MAKE
 XMKMF
@@ -6492,7 +6491,6 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_ALSA 1
 _ACEOF
 
-
   fi
 
 fi
index 4c64970fe0fc1541c463c3e6b16a5f151bc093d1..a5033e96247456f78eae4b2f53480af3e8b9f16e 100644 (file)
@@ -1620,7 +1620,6 @@ if test "${with_sound}" != "no"; then
     LIBSOUND="$LIBSOUND $ALSA_LIBS"
     CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
     AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
-    AC_SUBST()
   fi
   AC_SUBST(CFLAGS_SOUND)
 fi
index 25ee2443f261e20b69638b140a1b16d9f39d116e..904b0f32f118540ed5583e9fc421293ad9527c07 100644 (file)
@@ -1,6 +1,60 @@
-2007-04-24  Chong Yidong  <cyd@stupidchicken.com>
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
 
-       * emacs.py: File removed due to unclear legal issues.
+       * Version 22.1 released.
+
+2007-06-02  CHENG Gao  <chenggao@gmail.com>
+
+       * MORE.STUFF: Remove dead URL for Fortune, and update URLs for
+       Hideshow, Org, EDB, and Remember.
+
+2007-05-29  Robert J. Chassell  <bob@rattlesnake.com>
+
+       * NEWS: Fix instances of `allow' without object.
+
+2007-05-17  Glenn Morris  <rgm@gnu.org>
+
+       * PROBLEMS (Dumping): Mention OpenBSD macppc problem.
+
+2007-05-15  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+
+       * fr-refcard.tex: Rewrite using German layout.
+
+       * fr-refcard.ps: Regenerate.
+
+2007-05-12  Richard Stallman  <rms@gnu.org>
+
+       * refcard.tex (section{Incremental Search}): Minor corrections.
+
+2007-05-12  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
+
+       * Makefile (viperCard.ps, calccard.ps refcard.ps)
+       (sk-dired-ref.ps sk-refcard.ps sk-survival.ps)
+       (de-refcard.ps fr-refcard.ps pt-br-refcard.ps orgcard.ps): Use an
+       explicit output argument for `dvips'.
+
+2007-05-05  Glenn Morris  <rgm@gnu.org>
+
+       * NEWS: Re-order.
+
+2007-04-28  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.py: Restore file pending consideration of python.el legal
+       status.
+       * NEWS: Restore mention of python.el pending consideration of
+       legal status.
+
+2007-04-28  David R. Linn  <drl@jekyll.vuse.vanderbilt.edu>
+
+       * PROBLEMS: Add section on Solaris out-of-tree install issues with
+       non-GNU make.
+
+2007-04-25  Werner Lemberg  <wl@gnu.org>
+
+       * emacs.1: Replace -- with \(em.
+
+2007-04-25  Yavor Doganov  <yavor@gnu.org>  (tiny change)
+
+       * emacs.1, etags.1: Escape some minus signs.
 
 2007-04-22  Glenn Morris  <rgm@gnu.org>
 
index d91d22c6d52fb2f5dcfde43aa075a0b535448512..8582cbc0a1c12749dcb082f466b8c1ff43275a4c 100644 (file)
@@ -69,19 +69,19 @@ You might find bug-fixes or enhancements in these places.
 
  * Expand: <URL:http://w3.teaser.fr/%7Eflepied/expand.el.gz>
 
- * Fortune: <URL:http://www.coling.uni-freiburg.de/%7Eschauer/emacs.html>
-
  * Gnus: <URL:http://www.gnus.org/>
 
  * Ffap: <URL:http://www.mathcs.emory.edu/%7Emic/ftp/emacs/>
    (And some addons for it.)
 
- * Hideshow: <URL:http://www.glug.org/people/ttn/software/hideshow/>
+ * Hideshow: <URL:http://staff.science.uva.nl/~dominik/Tools/org/>
 
  * Ispell: <URL:http://www.eng.utah.edu/~kstevens/ispell-page.html>
 
  * MH-E: <URL:http://mh-e.sourceforge.net/>
 
+ * Org mode: <URL:http://staff.science.uva.nl/~dominik/Tools/org/>
+
  * PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/>
 
  * PS-print: <URL:http://www.emacswiki.org/cgi-bin/wiki/PsPrintPackage>
@@ -148,7 +148,7 @@ Several are for Debian GNU/Linux in particular.
 
  * ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/>
 
- * EDB: database: <URL:http://www.glug.org/people/ttn/software/edb/>
+ * EDB: database: <URL:http://www.gnuvola.org/software/edb/>
 
  * Ee: categorizing information manager:
    <URL:http://www.jurta.org/emacs/ee/>
@@ -235,10 +235,10 @@ Several are for Debian GNU/Linux in particular.
    DTD-aware serious SGML/XML editing.
 
  * Quack: <URL:http://www.neilvandyke.org/quack/>
-   Quack enhances Emacs support for Scheme
+   Quack enhances Emacs support for Scheme.
 
- * Remember:
-   <URL:http://sacha.free.net.ph/notebook/wiki/RememberEl.php>
+ * Remember: <URL:https://gna.org/p/remember-el>
+   A Personal Information Manager (PIM) for Emacs.
 
  * Session: <URL:http://emacs-session.sourceforge.net/>
    Session Management for Emacs.
index 0226c2838d9e4f16fec3c83cc549809d3af63a25..1947147dad774f24213d53d53a59d24896762be6 100644 (file)
@@ -75,22 +75,22 @@ gnus-booklet.dvi: gnus-refcard.tex
 
 ## A4, landscape.
 de-refcard.ps fr-refcard.ps pt-br-refcard.ps orgcard.ps: %.ps: %.dvi
-       dvips -t a4 -t landscape $<
+       dvips -t a4 -t landscape $< -o $@
 
 ## A4, portrait.
 cs-dired-ref.ps cs-refcard.ps cs-survival.ps fr-drdref.ps \
 pl-refcard.ps ru-refcard.ps \
 sk-dired-ref.ps sk-refcard.ps sk-survival.ps: %.ps: %.dvi
-       dvips -t a4 $<
+       dvips -t a4 $< -o $@
 
 ## letter, landscape.
 calccard.ps refcard.ps: %.ps: %.dvi
-       dvips -t letter -t landscape $<
+       dvips -t letter -t landscape $< -o $@
 
 ## letter, portrait.
 dired-ref.ps gnus-booklet.ps gnus-refcard.ps survival.ps vipcard.ps \
 viperCard.ps: %.ps: %.dvi
-       dvips -t letter $<
+       dvips -t letter $< -o $@
 
 
 .PHONY: mostlyclean clean distclean maintainer-clean unlock relock
index 36238c243d161da0c83eee765e3e8d053487c4a1..230191a0b07a45d97492f3f9eb9a8b96a565876b 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -34,9 +34,6 @@ Some specific packages that are known to cause problems are:
 
 ** cua.el, cua-mode.el: remove old versions.
 
-** python-mode.el: Use python.el, available at
-   http://www.emacswiki.org/cgi-bin/wiki/PythonMode
-
 \f
 * Installation Changes in Emacs 22.1
 
@@ -44,14 +41,6 @@ Some specific packages that are known to cause problems are:
 when you run configure.  This requires Gtk+ 2.4 or newer.  This port
 provides a way to display multilingual text in menus (with some caveats).
 
-** Emacs comes with a new set of icons.
-These icons are displayed on the taskbar and/or titlebar when Emacs
-runs in a graphical environment.  Source files for these icons can be
-found in etc/images/icons.  (You can't change the icons displayed by
-Emacs by changing these files directly.  On X, the icon is compiled
-into the Emacs executable; see gnu.h in the source tree.  On MS
-Windows, see nt/icons/emacs.ico.)
-
 ** The Emacs Lisp Reference Manual is now part of the distribution.
 
 The Emacs Lisp Reference Manual in Info format is built as part of the
@@ -71,22 +60,14 @@ item was added to the menu bar to make it easily accessible
 You no longer need to download a separate tarball in order to build
 Emacs with Leim.
 
-** New translations of the Emacs Tutorial are available in the
-following languages: Brasilian Portuguese, Bulgarian, Chinese (both
-with simplified and traditional characters), French, Russian, and
-Italian.  Type `C-u C-h t' to choose one of them in case your language
-setup doesn't automatically select the right one.
-
-** New translations of the Emacs reference card are available in the
-Brasilian Portuguese and Russian.  The corresponding PostScript files
-are also included.
+** Support for MacOS X was added.
+See the files mac/README and mac/INSTALL for build instructions.
 
-** A French translation of the `Emacs Survival Guide' is available.
+** Mac OS 9 port now uses the Carbon API by default.  You can also
+create a non-Carbon build by specifying `NonCarbon' as a target.  See
+the files mac/README and mac/INSTALL for build instructions.
 
-** Emacs now includes support for loading image libraries on demand.
-(Currently this feature is only used on MS Windows.)  You can configure
-the supported image types and their associated dynamic libraries by
-setting the variable `image-library-alist'.
+** Support for a Cygwin build of Emacs was added.
 
 ** Support for GNU/Linux systems on X86-64 machines was added.
 
@@ -96,19 +77,17 @@ setting the variable `image-library-alist'.
 
 ** Support for FreeBSD/Alpha has been added.
 
-** Support for a Cygwin build of Emacs was added.
-
-** Support for MacOS X was added.
-See the files mac/README and mac/INSTALL for build instructions.
-
-** Mac OS 9 port now uses the Carbon API by default.  You can also
-create a non-Carbon build by specifying `NonCarbon' as a target.  See
-the files mac/README and mac/INSTALL for build instructions.
+** New translations of the Emacs Tutorial are available in the
+following languages: Brasilian Portuguese, Bulgarian, Chinese (both
+with simplified and traditional characters), French, Russian, and
+Italian.  Type `C-u C-h t' to choose one of them in case your language
+setup doesn't automatically select the right one.
 
-** The `emacsserver' program has been removed, replaced with Lisp code.
+** New translations of the Emacs reference card are available in the
+Brasilian Portuguese and Russian.  The corresponding PostScript files
+are also included.
 
-** The `yow' program has been removed.
-Use the corresponding Emacs feature instead.
+** A French translation of the `Emacs Survival Guide' is available.
 
 ** Emacs now supports new configure options `--program-prefix',
 `--program-suffix' and `--program-transform-name' that affect the names of
@@ -122,37 +101,68 @@ to own the game scores is controlled by `--with-game-user'.  If access
 to a game user is not available, then scores will be stored separately
 in each user's home directory.
 
+** Emacs now includes support for loading image libraries on demand.
+(Currently this feature is only used on MS Windows.)  You can configure
+the supported image types and their associated dynamic libraries by
+setting the variable `image-library-alist'.
+
 ** Emacs can now be built without sound support.
 
-** Building with -DENABLE_CHECKING does not automatically build with union
-types any more.  Add -DUSE_LISP_UNION_TYPE if you want union types.
+** Emacs Lisp source files are compressed by default if `gzip' is available.
 
-** When pure storage overflows while dumping, Emacs now prints how
-much pure storage it will approximately need.
+** All images used in Emacs have been consolidated in etc/images and subdirs.
+See also the changes to `find-image', documented below.
 
-** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the
-contents of buffers from a core dump and save them to files easily, should
-Emacs crash.
+** Emacs comes with a new set of icons.
+These icons are displayed on the taskbar and/or titlebar when Emacs
+runs in a graphical environment.  Source files for these icons can be
+found in etc/images/icons.  (You can't change the icons displayed by
+Emacs by changing these files directly.  On X, the icon is compiled
+into the Emacs executable; see gnu.h in the source tree.  On MS
+Windows, see nt/icons/emacs.ico.)
+
+** The `emacsserver' program has been removed, replaced with Lisp code.
+
+** The `yow' program has been removed.
+Use the corresponding Emacs feature instead.
 
 ** The Emacs terminal emulation in term.el uses a different terminfo name.
 The Emacs terminal emulation in term.el now uses "eterm-color" as its
 terminfo name, since term.el now supports color.
 
-** Emacs Lisp source files are compressed by default if `gzip' is available.
+** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the
+contents of buffers from a core dump and save them to files easily, should
+Emacs crash.
 
-** All images used in Emacs have been consolidated in etc/images and subdirs.
-See also the changes to `find-image', documented below.
+** Building with -DENABLE_CHECKING does not automatically build with union
+types any more.  Add -DUSE_LISP_UNION_TYPE if you want union types.
+
+** When pure storage overflows while dumping, Emacs now prints how
+much pure storage it will approximately need.
 
 \f
 * Startup Changes in Emacs 22.1
 
-** New command line option -Q or --quick.
-This is like using -q --no-site-file, but in addition it also disables
-the fancy startup screen.
+** Init file changes
+If the init file ~/.emacs does not exist, Emacs will try
+~/.emacs.d/init.el or ~/.emacs.d/init.elc.  Likewise, if the shell init file
+~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
 
-** New command line option -D or --basic-display.
-Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and
-the blinking cursor.
+** Emacs can now be invoked in full-screen mode on a windowed display.
+When Emacs is invoked on a window system, the new command-line options
+`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
+whose width, height, or both width and height take up the entire
+screen size.  (For now, this does not work with some window managers.)
+
+** Emacs now displays a splash screen by default even if command-line
+arguments were given.  The new command-line option --no-splash
+disables the splash screen; see also the variable
+`inhibit-splash-screen' (which is also aliased as
+`inhibit-startup-message').
+
+** New user option `inhibit-startup-buffer-menu'.
+When loading many files, for instance with `emacs *', Emacs normally
+displays a buffer menu.  This option turns the buffer menu off.
 
 ** New command line option -nbc or --no-blinking-cursor disables
 the blinking cursor on graphical terminals.
@@ -163,6 +173,10 @@ can start with this line:
 
    #!/usr/bin/emacs --script
 
+** The -f option, used from the command line to call a function,
+now reads arguments for the function interactively if it is
+an interactively callable function.
+
 ** The option --directory DIR now modifies `load-path' immediately.
 Directories are added to the front of `load-path' in the order they
 appear on the command line.  For example, with this command line:
@@ -172,16 +186,6 @@ appear on the command line.  For example, with this command line:
 Emacs looks for library `foo' in the parent directory, then in /tmp, then
 in the other directories in `load-path'.  (-L is short for --directory.)
 
-** The command line option --no-windows has been changed to
---no-window-system.  The old one still works, but is deprecated.
-
-** If the environment variable DISPLAY specifies an unreachable X display,
-Emacs will now startup as if invoked with the --no-window-system option.
-
-** The -f option, used from the command line to call a function,
-now reads arguments for the function interactively if it is
-an interactively callable function.
-
 ** When you specify a frame size with --geometry, the size applies to
 all frames you create.  A position specified with --geometry only
 affects the initial frame.
@@ -192,30 +196,11 @@ with respect to its frame position: if you don't specify a position
 command-line option), Emacs leaves the frame position to the Windows'
 window manager.
 
-** Emacs can now be invoked in full-screen mode on a windowed display.
-When Emacs is invoked on a window system, the new command-line options
-`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
-whose width, height, or both width and height take up the entire
-screen size.  (For now, this does not work with some window managers.)
-
-** Emacs now displays a splash screen by default even if command-line
-arguments were given.  The new command-line option --no-splash
-disables the splash screen; see also the variable
-`inhibit-splash-screen' (which is also aliased as
-`inhibit-startup-message').
-
-** The default is now to use a bitmap as the icon.
-The command-line options --icon-type, -i have been replaced with
-options --no-bitmap-icon, -nbi to turn the bitmap icon off.
-
-** New user option `inhibit-startup-buffer-menu'.
-When loading many files, for instance with `emacs *', Emacs normally
-displays a buffer menu.  This option turns the buffer menu off.
+** The command line option --no-windows has been changed to
+--no-window-system.  The old one still works, but is deprecated.
 
-** Init file changes
-If the init file ~/.emacs does not exist, Emacs will try
-~/.emacs.d/init.el or ~/.emacs.d/init.elc.  Likewise, if the shell init file
-~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
+** If the environment variable DISPLAY specifies an unreachable X display,
+Emacs will now startup as if invoked with the --no-window-system option.
 
 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs
 automatically at startup, if it exists.  When Emacs offers to save
@@ -223,6 +208,18 @@ modified buffers, it saves the abbrevs too if they have changed.  It
 can do this either silently or asking for confirmation first,
 according to the value of `save-abbrevs'.
 
+** New command line option -Q or --quick.
+This is like using -q --no-site-file, but in addition it also disables
+the fancy startup screen.
+
+** New command line option -D or --basic-display.
+Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and
+the blinking cursor.
+
+** The default is now to use a bitmap as the icon.
+The command-line options --icon-type, -i have been replaced with
+options --no-bitmap-icon, -nbi to turn the bitmap icon off.
+
 ** If the environment variable EMAIL is defined, Emacs now uses its value
 to compute the default value of `user-mail-address', in preference to
 concatenation of `user-login-name' with the name of your host machine.
@@ -234,6 +231,24 @@ concatenation of `user-login-name' with the name of your host machine.
 
 See below for more details.
 
+** When the undo information of the current command gets really large
+(beyond the value of `undo-outer-limit'), Emacs discards it and warns
+you about it.
+
+** When Emacs prompts for file names, SPC no longer completes the file name.
+This is so filenames with embedded spaces could be input without the
+need to quote the space with a C-q.  The underlying changes in the
+keymaps that are active in the minibuffer are described below under
+"New keymaps for typing file names".
+
+** The completion commands TAB, SPC and ? in the minibuffer apply only
+to the text before point.  If there is text in the buffer after point,
+it remains unchanged.
+
+** In incremental search, C-w is changed.  M-%, C-M-w and C-M-y are special.
+
+See below under "incremental search changes".
+
 ** M-g is now a prefix key.
 M-g g and M-g M-g run goto-line.
 M-g n and M-g M-n run next-error (like C-x `).
@@ -248,24 +263,6 @@ point then it acts as the default argument for the minibuffer.
 ** M-o now is the prefix key for setting text properties;
 M-o M-o requests refontification.
 
-** The old bindings C-M-delete and C-M-backspace have been deleted,
-since there are situations where one or the other will shut down
-the operating system or your X server.
-
-** When the undo information of the current command gets really large
-(beyond the value of `undo-outer-limit'), Emacs discards it and warns
-you about it.
-
-** In incremental search, C-w is changed.  M-%, C-M-w and C-M-y are special.
-
-See below under "incremental search changes".
-
-** When Emacs prompts for file names, SPC no longer completes the file name.
-This is so filenames with embedded spaces could be input without the
-need to quote the space with a C-q.  The underlying changes in the
-keymaps that are active in the minibuffer are described below under
-"New keymaps for typing file names".
-
 ** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
 a special case.
 
@@ -276,10 +273,6 @@ directory with Dired.
 You can get the old behavior by typing C-x C-f M-n RET, which fetches
 the actual file name into the minibuffer.
 
-** The completion commands TAB, SPC and ? in the minibuffer apply only
-to the text before point.  If there is text in the buffer after point,
-it remains unchanged.
-
 ** In Dired's ! command (dired-do-shell-command), `*' and `?' now
 control substitution of the file names only when they are surrounded
 by whitespace.  This means you can now use them as shell wildcards
@@ -303,6 +296,10 @@ in the region, rather than on all complete lines in the region.
 ** Adaptive filling misfeature removed.
 It no longer treats `NNN.' or `(NNN)' as a prefix.
 
+** The old bindings C-M-delete and C-M-backspace have been deleted,
+since there are situations where one or the other will shut down
+the operating system or your X server.
+
 ** The register compatibility key bindings (deprecated since Emacs 19)
 have been removed:
   C-x /   point-to-register (Use: C-x r SPC)
@@ -313,6 +310,9 @@ have been removed:
 \f
 * Editing Changes in Emacs 22.1
 
+** The max size of buffers and integers has been doubled.
+On 32bit machines, it is now 256M (i.e. 268435455).
+
 ** !MEM FULL! at the start of the mode line indicates that Emacs
 cannot get any more memory for Lisp data.  This often means it could
 crash soon if you do things that use more memory.  On most systems,
@@ -320,34 +320,31 @@ killing buffers will get out of this state.  If killing buffers does
 not make !MEM FULL! disappear, you should save your work and start
 a new Emacs.
 
-** The max size of buffers and integers has been doubled.
-On 32bit machines, it is now 256M (i.e. 268435455).
+** `undo-only' does an undo which does not redo any previous undo.
 
-** You can now switch buffers in a cyclic order with C-x C-left
-(previous-buffer) and C-x C-right (next-buffer).  C-x left and
-C-x right can be used as well.  The functions keep a different buffer
-cycle for each frame, using the frame-local buffer list.
+** Yanking text now discards certain text properties that can
+be inconvenient when you did not expect them.  The variable
+`yank-excluded-properties' specifies which ones.  Insertion
+of register contents and rectangles also discards these properties.
 
-** `undo-only' does an undo which does not redo any previous undo.
+** New command `kill-whole-line' kills an entire line at once.
+By default, it is bound to C-S-<backspace>.
 
 ** M-SPC (just-one-space) when given a numeric argument N
 converts whitespace around point to N spaces.
 
+** You can now switch buffers in a cyclic order with C-x C-left
+(previous-buffer) and C-x C-right (next-buffer).  C-x left and
+C-x right can be used as well.  The functions keep a different buffer
+cycle for each frame, using the frame-local buffer list.
+
 ** C-x 5 C-o displays a specified buffer in another frame
 but does not switch to that frame.  It's the multi-frame
 analogue of C-x 4 C-o.
 
-** New command `kill-whole-line' kills an entire line at once.
-By default, it is bound to C-S-<backspace>.
-
-** Yanking text now discards certain text properties that can
-be inconvenient when you did not expect them.  The variable
-`yank-excluded-properties' specifies which ones.  Insertion
-of register contents and rectangles also discards these properties.
-
-** The default values of paragraph-start and indent-line-function have
-been changed to reflect those used in Text mode rather than those used
-in Indented-Text mode.
+** `special-display-buffer-names' and `special-display-regexps' now
+understand two new boolean pseudo-frame-parameters `same-frame' and
+`same-window'.
 
 ** New commands to operate on pairs of open and close characters:
 `insert-pair', `delete-pair', `raise-sexp'.
@@ -358,61 +355,16 @@ Substrings of the form `$foo' and `${foo}' in the specified new value
 now refer to the value of environment variable foo.  To include a `$'
 in the value, use `$$'.
 
-** `special-display-buffer-names' and `special-display-regexps' now
-understand two new boolean pseudo-frame-parameters `same-frame' and
-`same-window'.
+** The default values of paragraph-start and indent-line-function have
+been changed to reflect those used in Text mode rather than those used
+in Paragraph-Indent Text mode.
 
 ** The default for the paper size (variable ps-paper-type) is taken
 from the locale.
 
-** Mark command changes:
+** Help command changes:
 
-*** A prefix argument is no longer required to repeat a jump to a
-previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
-mark ring.  Use C-u C-u C-SPC to set the mark immediately after a jump.
-
-*** Marking commands extend the region when invoked multiple times.
-
-If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
-(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
-extends each time, so you can mark the next two sexps with M-C-SPC
-M-C-SPC, for example.  This feature also works for
-mark-end-of-sentence, if you bind that to a key.  It also extends the
-region when the mark is active in Transient Mark mode, regardless of
-the last command.  To start a new region with one of marking commands
-in Transient Mark mode, you can deactivate the active region with C-g,
-or set the new mark with C-SPC.
-
-*** M-h (mark-paragraph) now accepts a prefix arg.
-
-With positive arg, M-h marks the current and the following paragraphs;
-if the arg is negative, it marks the current and the preceding
-paragraphs.
-
-*** Some commands do something special in Transient Mark mode when the
-mark is active--for instance, they limit their operation to the
-region.  Even if you don't normally use Transient Mark mode, you might
-want to get this behavior from a particular command.  There are two
-ways you can enable Transient Mark mode and activate the mark, for one
-command only.
-
-One method is to type C-SPC C-SPC; this enables Transient Mark mode
-and sets the mark at point.  The other method is to type C-u C-x C-x.
-This enables Transient Mark mode temporarily but does not alter the
-mark or the region.
-
-After these commands, Transient Mark mode remains enabled until you
-deactivate the mark.  That typically happens when you type a command
-that alters the buffer, but you can also deactivate the mark by typing
-C-g.
-
-*** Movement commands `beginning-of-buffer', `end-of-buffer',
-`beginning-of-defun', `end-of-defun' do not set the mark if the mark
-is already active in Transient Mark mode.
-
-** Help command changes:
-
-*** Changes in C-h bindings:
+*** Changes in C-h bindings:
 
 C-h e displays the *Messages* buffer.
 
@@ -445,6 +397,18 @@ to new-kill-line, these commands now report:
 - C-h w and C-h f new-kill-line reports:
   new-kill-line is on C-k
 
+*** The apropos commands now accept a list of words to match.
+When more than one word is specified, at least two of those words must
+be present for an item to match.  Regular expression matching is still
+available.
+
+*** The new option `apropos-sort-by-scores' causes the matching items
+to be sorted according to their score.  The score for an item is a
+number calculated to indicate how well the item matches the words or
+regular expression that you entered to the apropos command.  The best
+match is listed first, and the calculated score is shown for each
+matching item.
+
 *** Help commands `describe-function' and `describe-key' now show function
 arguments in lowercase italics on displays that support it.  To change the
 default, customize face `help-argument-name' or redefine the function
@@ -478,31 +442,62 @@ same string that would be displayed on mouse-over using the
 `help-echo' property, but, in certain cases, it can display a more
 keyboard oriented alternative.
 
-*** New user option `help-at-pt-display-when-idle' allows to
+*** New user option `help-at-pt-display-when-idle' allows you to
 automatically show the help provided by `display-local-help' on
 point-over, after suitable idle time.  The amount of idle time is
 determined by the user option `help-at-pt-timer-delay' and defaults
 to one second.  This feature is turned off by default.
 
-*** The apropos commands now accept a list of words to match.
-When more than one word is specified, at least two of those words must
-be present for an item to match.  Regular expression matching is still
-available.
+** Mark command changes:
 
-*** The new option `apropos-sort-by-scores' causes the matching items
-to be sorted according to their score.  The score for an item is a
-number calculated to indicate how well the item matches the words or
-regular expression that you entered to the apropos command.  The best
-match is listed first, and the calculated score is shown for each
-matching item.
+*** A prefix argument is no longer required to repeat a jump to a
+previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
+mark ring.  Use C-u C-u C-SPC to set the mark immediately after a jump.
+
+*** Marking commands extend the region when invoked multiple times.
+
+If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
+(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
+extends each time, so you can mark the next two sexps with M-C-SPC
+M-C-SPC, for example.  This feature also works for
+mark-end-of-sentence, if you bind that to a key.  It also extends the
+region when the mark is active in Transient Mark mode, regardless of
+the last command.  To start a new region with one of marking commands
+in Transient Mark mode, you can deactivate the active region with C-g,
+or set the new mark with C-SPC.
+
+*** Some commands do something special in Transient Mark mode when the
+mark is active--for instance, they limit their operation to the
+region.  Even if you don't normally use Transient Mark mode, you might
+want to get this behavior from a particular command.  There are two
+ways you can enable Transient Mark mode and activate the mark, for one
+command only.
+
+One method is to type C-SPC C-SPC; this enables Transient Mark mode
+and sets the mark at point.  The other method is to type C-u C-x C-x.
+This enables Transient Mark mode temporarily but does not alter the
+mark or the region.
+
+After these commands, Transient Mark mode remains enabled until you
+deactivate the mark.  That typically happens when you type a command
+that alters the buffer, but you can also deactivate the mark by typing
+C-g.
+
+*** Movement commands `beginning-of-buffer', `end-of-buffer',
+`beginning-of-defun', `end-of-defun' do not set the mark if the mark
+is already active in Transient Mark mode.
+
+*** M-h (mark-paragraph) now accepts a prefix arg.
+
+With positive arg, M-h marks the current and the following paragraphs;
+if the arg is negative, it marks the current and the preceding
+paragraphs.
 
 ** Incremental Search changes:
 
-*** Vertical scrolling is now possible within incremental search.
-To enable this feature, customize the new user option
-`isearch-allow-scroll'.  User written commands which satisfy stringent
-constraints can be marked as "scrolling commands".  See the Emacs manual
-for details.
+*** M-% typed in isearch mode invokes `query-replace' or
+`query-replace-regexp' (depending on search mode) with the current
+search string used as the string to replace.
 
 *** C-w in incremental search now grabs either a character or a word,
 making the decision in a heuristic way.  This new job is done by the
@@ -516,9 +511,11 @@ at the end of a line.
 Another method to grab a character is to enter the minibuffer by `M-e'
 and to type `C-f' at the end of the search string in the minibuffer.
 
-*** M-% typed in isearch mode invokes `query-replace' or
-`query-replace-regexp' (depending on search mode) with the current
-search string used as the string to replace.
+*** Vertical scrolling is now possible within incremental search.
+To enable this feature, customize the new user option
+`isearch-allow-scroll'.  User written commands which satisfy stringent
+constraints can be marked as "scrolling commands".  See the Emacs manual
+for details.
 
 *** Isearch no longer adds `isearch-resume' commands to the command
 history by default.  To enable this feature, customize the new
@@ -526,10 +523,6 @@ user option `isearch-resume-in-command-history'.
 
 ** Replace command changes:
 
-*** New user option `query-replace-skip-read-only': when non-nil,
-`query-replace' and related functions simply ignore
-a match if part of it has a read-only property.
-
 *** When used interactively, the commands `query-replace-regexp' and
 `replace-regexp' allow \,expr to be used in a replacement string,
 where expr is an arbitrary Lisp expression evaluated at replacement
@@ -546,15 +539,11 @@ deprecated since it offers no additional functionality.
 *** The current match in query-replace is highlighted in new face
 `query-replace' which by default inherits from isearch face.
 
-** Local variables lists:
-
-*** In processing a local variables list, Emacs strips the prefix and
-suffix from every line before processing all the lines.
-
-*** Text properties in local variables.
+*** New user option `query-replace-skip-read-only': when non-nil,
+`query-replace' and related functions simply ignore
+a match if part of it has a read-only property.
 
-A file local variables list cannot specify a string with text
-properties--any specified text properties are discarded.
+** Local variables lists:
 
 *** If the local variables list contains any variable-value pairs that
 are not known to be safe, Emacs shows a prompt asking whether to apply
@@ -592,6 +581,14 @@ with the form as argument, and if any returns t, the form is ok to call.
 If the form is not "ok to call", that means Emacs asks for
 confirmation as before.
 
+*** In processing a local variables list, Emacs strips the prefix and
+suffix from every line before processing all the lines.
+
+*** Text properties in local variables.
+
+A file local variables list cannot specify a string with text
+properties--any specified text properties are discarded.
+
 ** File operation changes:
 
 *** Unquoted `$' in file names do not signal an error any more when
@@ -599,29 +596,20 @@ the corresponding environment variable does not exist.
 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
 is only rarely needed.
 
-*** find-file-read-only visits multiple files in read-only mode,
-when the file name contains wildcard characters.
-
-*** find-alternate-file replaces the current file with multiple files,
-when the file name contains wildcard characters.  It now asks if you
-wish save your changes and not just offer to kill the buffer.
-
-*** Auto Compression mode is now enabled by default.
-
 *** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
 
 Since the default input is the current directory, this has the effect
 of specifying the current directory.  Normally that means to visit the
 directory with Dired.
 
-*** When you are root, and you visit a file whose modes specify
-read-only, the Emacs buffer is now read-only too.  Type C-x C-q if you
-want to make the buffer writable.  (As root, you can in fact alter the
-file.)
-
 *** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
 against its file, so you can see what changes you would be saving.
 
+*** Auto Compression mode is now enabled by default.
+
+*** If the user visits a file larger than `large-file-warning-threshold',
+Emacs asks for confirmation.
+
 *** The commands copy-file, rename-file, make-symbolic-link and
 add-name-to-file, when given a directory as the "new name" argument,
 convert it to a file name by merging in the within-directory part of
@@ -629,22 +617,6 @@ the existing file's name.  (This is the same convention that shell
 commands cp, mv, and ln follow.)  Thus, M-x copy-file RET ~/foo RET
 /tmp RET copies ~/foo to /tmp/foo.
 
-*** When used interactively, `format-write-file' now asks for confirmation
-before overwriting an existing file, unless a prefix argument is
-supplied.  This behavior is analogous to `write-file'.
-
-*** The variable `auto-save-file-name-transforms' now has a third element that
-controls whether or not the function `make-auto-save-file-name' will
-attempt to construct a unique auto-save name (e.g. for remote files).
-
-*** The new option `write-region-inhibit-fsync' disables calls to fsync
-in `write-region'.  This can be useful on laptops to avoid spinning up
-the hard drive upon each file save.  Enabling this variable may result
-in data loss, use with care.
-
-*** If the user visits a file larger than `large-file-warning-threshold',
-Emacs asks for confirmation.
-
 *** require-final-newline now has two new possible values:
 
 `visit' means add a newline (as an undoable change) if it's needed
@@ -661,8 +633,37 @@ sets require-final-newline based on mode-require-final-newline.
 So you can customize mode-require-final-newline to control what these
 modes do.
 
+*** When you are root, and you visit a file whose modes specify
+read-only, the Emacs buffer is now read-only too.  Type C-x C-q if you
+want to make the buffer writable.  (As root, you can in fact alter the
+file.)
+
+*** find-file-read-only visits multiple files in read-only mode,
+when the file name contains wildcard characters.
+
+*** find-alternate-file replaces the current file with multiple files,
+when the file name contains wildcard characters.  It now asks if you
+wish save your changes and not just offer to kill the buffer.
+
+*** When used interactively, `format-write-file' now asks for confirmation
+before overwriting an existing file, unless a prefix argument is
+supplied.  This behavior is analogous to `write-file'.
+
+*** The variable `auto-save-file-name-transforms' now has a third element that
+controls whether or not the function `make-auto-save-file-name' will
+attempt to construct a unique auto-save name (e.g. for remote files).
+
+*** The new option `write-region-inhibit-fsync' disables calls to fsync
+in `write-region'.  This can be useful on laptops to avoid spinning up
+the hard drive upon each file save.  Enabling this variable may result
+in data loss, use with care.
+
 ** Minibuffer changes:
 
+*** The completion commands TAB, SPC and ? in the minibuffer apply only
+to the text before point.  If there is text in the buffer after point,
+it remains unchanged.
+
 *** The new file-name-shadow-mode is turned ON by default, so that when
 entering a file name, any prefix which Emacs will ignore is dimmed.
 
@@ -698,85 +699,42 @@ completing file names.  Elements of `completion-ignored-extensions'
 which do not end in a slash are never considered when a completion
 candidate is a directory.
 
-*** The completion commands TAB, SPC and ? in the minibuffer apply only
-to the text before point.  If there is text in the buffer after point,
-it remains unchanged.
-
 *** New user option `history-delete-duplicates'.
 If set to t when adding a new history element, all previous identical
 elements are deleted from the history list.
 
 ** Redisplay changes:
 
-*** Preemptive redisplay now adapts to current load and bandwidth.
+*** The new face `mode-line-inactive' is used to display the mode line
+of non-selected windows.  The `mode-line' face is now used to display
+the mode line of the currently selected window.
 
-To avoid preempting redisplay on fast computers, networks, and displays,
-the arrival of new input is now performed at regular intervals during
-redisplay.  The new variable `redisplay-preemption-period' specifies
-the period; the default is to check for input every 0.1 seconds.
+The new variable `mode-line-in-non-selected-windows' controls whether
+the `mode-line-inactive' face is used.
 
 *** The mode line position information now comes before the major mode.
 When the file is maintained under version control, that information
 appears between the position information and the major mode.
 
-*** New face `escape-glyph' highlights control characters and escape glyphs.
+*** You can now customize the use of window fringes.  To control this
+for all frames, use M-x fringe-mode or the Show/Hide submenu of the
+top-level Options menu, or customize the `fringe-mode' variable.  To
+control this for a specific frame, use the command M-x
+set-fringe-style.
 
-*** Non-breaking space and hyphens are now displayed with a special
-face, either nobreak-space or escape-glyph.  You can turn this off or
-specify a different mode by setting the variable `nobreak-char-display'.
+*** Angle icons in the fringes can indicate the buffer boundaries.  In
+addition, up and down arrow bitmaps in the fringe indicate which ways
+the window can be scrolled.
 
-*** The parameters of automatic hscrolling can now be customized.
-The variable `hscroll-margin' determines how many columns away from
-the window edge point is allowed to get before automatic hscrolling
-will horizontally scroll the window.  The default value is 5.
+This behavior is activated by setting the buffer-local variable
+`indicate-buffer-boundaries' to a non-nil value.  The default value of
+this variable is found in `default-indicate-buffer-boundaries'.
 
-The variable `hscroll-step' determines how many columns automatic
-hscrolling scrolls the window when point gets too close to the
-window edge.  If its value is zero, the default, Emacs scrolls the
-window so as to center point.  If its value is an integer, it says how
-many columns to scroll.  If the value is a floating-point number, it
-gives the fraction of the window's width to scroll the window.
+If value is `left' or `right', both angle and arrow bitmaps are
+displayed in the left or right fringe, resp.
 
-The variable `automatic-hscrolling' was renamed to
-`auto-hscroll-mode'.  The old name is still available as an alias.
-
-*** Moving or scrolling through images (and other lines) taller than
-the window now works sensibly, by automatically adjusting the window's
-vscroll property.
-
-*** New customize option `overline-margin' controls the space between
-overline and text.
-
-*** New variable `x-underline-at-descent-line' controls the relative
-position of the underline.  When set, it overrides the
-`x-use-underline-position-properties' variables.
-
-*** The new face `mode-line-inactive' is used to display the mode line
-of non-selected windows.  The `mode-line' face is now used to display
-the mode line of the currently selected window.
-
-The new variable `mode-line-in-non-selected-windows' controls whether
-the `mode-line-inactive' face is used.
-
-*** You can now customize the use of window fringes.  To control this
-for all frames, use M-x fringe-mode or the Show/Hide submenu of the
-top-level Options menu, or customize the `fringe-mode' variable.  To
-control this for a specific frame, use the command M-x
-set-fringe-style.
-
-*** Angle icons in the fringes can indicate the buffer boundaries.  In
-addition, up and down arrow bitmaps in the fringe indicate which ways
-the window can be scrolled.
-
-This behavior is activated by setting the buffer-local variable
-`indicate-buffer-boundaries' to a non-nil value.  The default value of
-this variable is found in `default-indicate-buffer-boundaries'.
-
-If value is `left' or `right', both angle and arrow bitmaps are
-displayed in the left or right fringe, resp.
-
-The value can also be an alist which specifies the presence and
-position of each bitmap individually.
+The value can also be an alist which specifies the presence and
+position of each bitmap individually.
 
 For example, ((top . left) (t .  right)) places the top angle bitmap
 in left fringe, the bottom angle bitmap in right fringe, and both
@@ -792,10 +750,6 @@ cursor will be displayed in the fringe when positioned on that newline.
 The new user option 'overflow-newline-into-fringe' can be set to nil to
 revert to the old behavior of continuing such lines.
 
-*** When a window has display margin areas, the fringes are now
-displayed between the margins and the buffer's text area, rather than
-outside those margins.
-
 *** A window can now have individual fringe and scroll-bar settings,
 in addition to the individual display margin settings.
 
@@ -803,6 +757,42 @@ Such individual settings are now preserved when windows are split
 horizontally or vertically, a saved window configuration is restored,
 or when the frame is resized.
 
+*** When a window has display margin areas, the fringes are now
+displayed between the margins and the buffer's text area, rather than
+outside those margins.
+
+*** New face `escape-glyph' highlights control characters and escape glyphs.
+
+*** Non-breaking space and hyphens are now displayed with a special
+face, either nobreak-space or escape-glyph.  You can turn this off or
+specify a different mode by setting the variable `nobreak-char-display'.
+
+*** The parameters of automatic hscrolling can now be customized.
+The variable `hscroll-margin' determines how many columns away from
+the window edge point is allowed to get before automatic hscrolling
+will horizontally scroll the window.  The default value is 5.
+
+The variable `hscroll-step' determines how many columns automatic
+hscrolling scrolls the window when point gets too close to the
+window edge.  If its value is zero, the default, Emacs scrolls the
+window so as to center point.  If its value is an integer, it says how
+many columns to scroll.  If the value is a floating-point number, it
+gives the fraction of the window's width to scroll the window.
+
+The variable `automatic-hscrolling' was renamed to
+`auto-hscroll-mode'.  The old name is still available as an alias.
+
+*** Moving or scrolling through images (and other lines) taller than
+the window now works sensibly, by automatically adjusting the window's
+vscroll property.
+
+*** Preemptive redisplay now adapts to current load and bandwidth.
+
+To avoid preempting redisplay on fast computers, networks, and displays,
+the arrival of new input is now performed at regular intervals during
+redisplay.  The new variable `redisplay-preemption-period' specifies
+the period; the default is to check for input every 0.1 seconds.
+
 *** The %c and %l constructs are now ignored in frame-title-format.
 Due to technical limitations in how Emacs interacts with windowing
 systems, these constructs often failed to render properly, and could
@@ -812,27 +802,12 @@ even cause Emacs to crash.
 will expand as needed, but not contract automatically.  To contract
 the tool bar, you must type C-l.
 
-** Cursor display changes:
-
-*** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
-now controlled by the variable `blink-cursor-alist'.
-
-*** The X resource cursorBlink can be used to turn off cursor blinking.
-
-*** Emacs can produce an underscore-like (horizontal bar) cursor.
-The underscore cursor is set by putting `(cursor-type . hbar)' in
-default-frame-alist.  It supports variable heights, like the `bar'
-cursor does.
-
-*** Display of hollow cursors now obeys the buffer-local value (if any)
-of `cursor-in-non-selected-windows' in the buffer that the cursor
-appears in.
-
-*** The variable `cursor-in-non-selected-windows' can now be set to any
-of the recognized cursor types.
+*** New customize option `overline-margin' controls the space between
+overline and text.
 
-*** On text terminals, the variable `visible-cursor' controls whether Emacs
-uses the "very visible" cursor (the default) or the normal cursor.
+*** New variable `x-underline-at-descent-line' controls the relative
+position of the underline.  When set, it overrides the
+`x-use-underline-position-properties' variables.
 
 ** New faces:
 
@@ -854,9 +829,6 @@ so package-specific faces can inherit from it.
 
 ** Font-Lock (syntax highlighting) changes:
 
-*** M-o now is the prefix key for setting text properties;
-M-o M-o requests refontification.
-
 *** All modes now support using M-x font-lock-mode to toggle
 fontification, even those such as Occur, Info, and comint-derived
 modes that do their own fontification in a special way.
@@ -865,22 +837,25 @@ The variable `Info-fontify' is no longer applicable; to disable
 fontification in Info, remove `turn-on-font-lock' from
 `Info-mode-hook'.
 
-*** Font-Lock mode: in major modes such as Lisp mode, where some Emacs
-features assume that an open-paren in column 0 is always outside of
-any string or comment, Font-Lock now highlights any such open-paren in
-bold-red if it is inside a string or a comment, to indicate that it
-can cause trouble.  You should rewrite the string or comment so that
-the open-paren is not in column 0.
+*** New standard font-lock face `font-lock-comment-delimiter-face'.
 
 *** New standard font-lock face `font-lock-preprocessor-face'.
 
-*** New standard font-lock face `font-lock-comment-delimiter-face'.
-
 *** Easy to overlook single character negation can now be font-locked.
 You can use the new variable `font-lock-negation-char-face' and the face of
 the same name to customize this.  Currently the cc-modes, sh-script-mode,
 cperl-mode and make-mode support this.
 
+*** Font-Lock mode: in major modes such as Lisp mode, where some Emacs
+features assume that an open-paren in column 0 is always outside of
+any string or comment, Font-Lock now highlights any such open-paren in
+bold-red if it is inside a string or a comment, to indicate that it
+can cause trouble.  You should rewrite the string or comment so that
+the open-paren is not in column 0.
+
+*** M-o now is the prefix key for setting text properties;
+M-o M-o requests refontification.
+
 *** The default settings for JIT stealth lock parameters are changed.
 The default value for the user option jit-lock-stealth-time is now nil
 instead of 3.  This setting of jit-lock-stealth-time disables stealth
@@ -928,8 +903,6 @@ current date and time, current line and column number in the mode-line.
 
 *** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
 
-*** You can exit dialog windows and menus by typing C-g.
-
 *** The menu item "Open File..." has been split into two items, "New File..."
 and "Open File...".  "Open File..." now opens only existing files.  This is
 to support existing GUI file selection dialogs better.
@@ -955,6 +928,35 @@ ESC, like they do for Gtk+, Mac and W32.
 by setting the variable `x-gtk-use-old-file-dialog' to t.  Default is to use
 the new dialog.
 
+*** You can exit dialog windows and menus by typing C-g.
+
+** Buffer Menu changes:
+
+*** The new options `buffers-menu-show-directories' and
+`buffers-menu-show-status' let you control how buffers are displayed
+in the menu dropped down when you click "Buffers" from the menu bar.
+
+`buffers-menu-show-directories' controls whether the menu displays
+leading directories as part of the file name visited by the buffer.
+If its value is `unless-uniquify', the default, directories are
+shown unless uniquify-buffer-name-style' is non-nil.  The value of nil
+and t turn the display of directories off and on, respectively.
+
+`buffers-menu-show-status' controls whether the Buffers menu includes
+the modified and read-only status of the buffers.  By default it is
+t, and the status is shown.
+
+Setting these variables directly does not take effect until next time
+the Buffers menu is regenerated.
+
+*** New command `Buffer-menu-toggle-files-only' toggles display of file
+buffers only in the Buffer Menu.  It is bound to T in Buffer Menu
+mode.
+
+*** `buffer-menu' and `list-buffers' now list buffers whose names begin
+with a space, when those buffers are visiting files.  Normally buffers
+whose names begin with space are omitted.
+
 ** Mouse changes:
 
 *** You can now follow links by clicking Mouse-1 on the link.
@@ -1009,8 +1011,7 @@ also disable mouse highlighting.
 shall not copy the selected text to the kill-ring by setting the new
 variable mouse-drag-copy-region to nil.
 
-*** mouse-wheels can now scroll a specific fraction of the window
-(rather than a fixed number of lines) and the scrolling is `progressive'.
+*** Under X, mouse-wheel-mode is turned on by default.
 
 *** Emacs ignores mouse-2 clicks while the mouse wheel is being moved.
 
@@ -1019,7 +1020,8 @@ unintentionally while turning the wheel, so these clicks are now
 ignored.  You can customize this with the mouse-wheel-click-event and
 mouse-wheel-inhibit-click-time variables.
 
-*** Under X, mouse-wheel-mode is turned on by default.
+*** mouse-wheels can now scroll a specific fraction of the window
+(rather than a fixed number of lines) and the scrolling is `progressive'.
 
 ** Multilingual Environment (Mule) changes:
 
@@ -1050,6 +1052,11 @@ keyboard-coding-system) if you prefer META to work (the old default)
 or if the locale doesn't describe the character set actually generated
 by the keyboard.  See Info node `Unibyte Mode'.
 
+*** The new command `set-file-name-coding-system' (C-x RET F) sets
+coding system for encoding and decoding file names.  A new menu item
+(Options->Mule->Set Coding Systems->For File Name) invokes this
+command.
+
 *** The new command `revert-buffer-with-coding-system' (C-x RET r)
 revisits the current file using a coding system that you specify.
 
@@ -1062,11 +1069,6 @@ of a file.
 *** New command `ucs-insert' inserts a character specified by its
 unicode.
 
-*** The new command `set-file-name-coding-system' (C-x RET F) sets
-coding system for encoding and decoding file names.  A new menu item
-(Options->Mule->Set Coding Systems->For File Name) invokes this
-command.
-
 *** New command quail-show-key shows what key (or key sequence) to type
 in the current input method to input a character at point.
 
@@ -1180,34 +1182,17 @@ the previous value becomes the "backup value" of the variable.
 You can go back to that backup value by selecting "Use Backup Value"
 under the "[State]" button.
 
-** Buffer Menu changes:
-
-*** New command `Buffer-menu-toggle-files-only' toggles display of file
-buffers only in the Buffer Menu.  It is bound to T in Buffer Menu
-mode.
-
-*** `buffer-menu' and `list-buffers' now list buffers whose names begin
-with a space, when those buffers are visiting files.  Normally buffers
-whose names begin with space are omitted.
-
-*** The new options `buffers-menu-show-directories' and
-`buffers-menu-show-status' let you control how buffers are displayed
-in the menu dropped down when you click "Buffers" from the menu bar.
-
-`buffers-menu-show-directories' controls whether the menu displays
-leading directories as part of the file name visited by the buffer.
-If its value is `unless-uniquify', the default, directories are
-shown unless uniquify-buffer-name-style' is non-nil.  The value of nil
-and t turn the display of directories off and on, respectively.
-
-`buffers-menu-show-status' controls whether the Buffers menu includes
-the modified and read-only status of the buffers.  By default it is
-t, and the status is shown.
+** Dired mode:
 
-Setting these variables directly does not take effect until next time
-the Buffers menu is regenerated.
+*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
+control substitution of the file names only when they are surrounded
+by whitespace.  This means you can now use them as shell wildcards
+too.  If you want to use just plain `*' as a wildcard, type `*""'; the
+double quotes make no difference in the shell, but they prevent
+special treatment in `dired-do-shell-command'.
 
-** Dired mode:
+*** The Dired command `dired-goto-file' is now bound to j, not M-g.
+This is to avoid hiding the global key binding of M-g.
 
 *** New faces dired-header, dired-mark, dired-marked, dired-flagged,
 dired-ignored, dired-directory, dired-symlink, dired-warning
@@ -1219,16 +1204,6 @@ with different file attributes in two dired buffers.
 *** New Dired command `dired-do-touch' (bound to T) changes timestamps
 of marked files with the value entered in the minibuffer.
 
-*** The Dired command `dired-goto-file' is now bound to j, not M-g.
-This is to avoid hiding the global key binding of M-g.
-
-*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
-control substitution of the file names only when they are surrounded
-by whitespace.  This means you can now use them as shell wildcards
-too.  If you want to use just plain `*' as a wildcard, type `*""'; the
-double quotes make no difference in the shell, but they prevent
-special treatment in `dired-do-shell-command'.
-
 *** In Dired, the w command now stores the current line's file name
 into the kill ring.  With a zero prefix arg, it stores the absolute file name.
 
@@ -1246,6 +1221,12 @@ directory listing into a buffer.
 
 ** Comint changes:
 
+*** The new INSIDE_EMACS environment variable is set to "t" in subshells
+running inside Emacs.  This supersedes the EMACS environment variable,
+which will be removed in a future Emacs release.  Programs that need
+to know whether they are started inside Emacs should check INSIDE_EMACS
+instead of EMACS.
+
 *** The comint prompt can now be made read-only, using the new user
 option `comint-prompt-read-only'.  This is not enabled by default,
 except in IELM buffers.  The read-only status of IELM prompts can be
@@ -1276,12 +1257,6 @@ otherwise behaves quite similarly to the bash version.
 `comint-use-prompt-regexp'.  The old name has been kept as an alias,
 but declared obsolete.
 
-*** The new INSIDE_EMACS environment variable is set to "t" in subshells
-running inside Emacs.  This supersedes the EMACS environment variable,
-which will be removed in a future Emacs release.  Programs that need
-to know whether they are started inside Emacs should check INSIDE_EMACS
-instead of EMACS.
-
 ** M-x Compile changes:
 
 *** M-x compile has become more robust and reliable
@@ -1333,13 +1308,6 @@ of the window.
 
 ** Occur mode changes:
 
-*** In the *Occur* buffer, `o' switches to it in another window, and
-C-o displays the current line's occurrence in another window without
-switching to it.
-
-*** You can now use next-error (C-x `) and previous-error to advance to
-the next/previous matching line found by M-x occur.
-
 *** The new command `multi-occur' is just like `occur', except it can
 search multiple buffers.  There is also a new command
 `multi-occur-in-matching-buffers' which allows you to specify the
@@ -1347,6 +1315,13 @@ buffers to search by their filenames or buffer names.  Internally,
 Occur mode has been rewritten, and now uses font-lock, among other
 changes.
 
+*** You can now use next-error (C-x `) and previous-error to advance to
+the next/previous matching line found by M-x occur.
+
+*** In the *Occur* buffer, `o' switches to it in another window, and
+C-o displays the current line's occurrence in another window without
+switching to it.
+
 ** Grep changes:
 
 *** Grep has been decoupled from compilation mode setup.
@@ -1377,9 +1352,6 @@ are automatically skipped by `rgrep'.
 Hits are fontified in green, and hits in binary files in orange.  Grep buffers
 can be saved and automatically revisited.
 
-*** The new variables `grep-window-height' and `grep-scroll-output' override
-the corresponding compilation mode settings, for grep commands only.
-
 *** New option `grep-highlight-matches' highlights matches in *grep*
 buffer.  It uses a special feature of some grep programs which accept
 --color option to output markers around matches.  When going to the next
@@ -1402,17 +1374,42 @@ When `-H' is used, the grep command line supplied by the user is passed
 unchanged to the system to execute, which allows more complicated
 command lines to be used than was possible before.
 
-** X Windows Support:
+*** The new variables `grep-window-height' and `grep-scroll-output' override
+the corresponding compilation mode settings, for grep commands only.
 
-*** Emacs now supports drag and drop for X.  Dropping a file on a window
-   opens it, dropping text inserts the text.  Dropping a file on a dired
-   buffer copies or moves the file to that directory.
+** Cursor display changes:
 
-*** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
-The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
-and `x-super-keysym' can be used to choose which keysyms Emacs should
-use for the modifiers.  For example, the following two lines swap
-Meta and Alt:
+*** Emacs can produce an underscore-like (horizontal bar) cursor.
+The underscore cursor is set by putting `(cursor-type . hbar)' in
+default-frame-alist.  It supports variable heights, like the `bar'
+cursor does.
+
+*** The variable `cursor-in-non-selected-windows' can now be set to any
+of the recognized cursor types.
+
+*** Display of hollow cursors now obeys the buffer-local value (if any)
+of `cursor-in-non-selected-windows' in the buffer that the cursor
+appears in.
+
+*** On text terminals, the variable `visible-cursor' controls whether Emacs
+uses the "very visible" cursor (the default) or the normal cursor.
+
+*** The X resource cursorBlink can be used to turn off cursor blinking.
+
+*** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
+now controlled by the variable `blink-cursor-alist'.
+
+** X Windows Support:
+
+*** Emacs now supports drag and drop for X.  Dropping a file on a window
+opens it, dropping text inserts the text.  Dropping a file on a dired
+buffer copies or moves the file to that directory.
+
+*** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
+The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
+and `x-super-keysym' can be used to choose which keysyms Emacs should
+use for the modifiers.  For example, the following two lines swap
+Meta and Alt:
     (setq x-alt-keysym 'meta)
     (setq x-meta-keysym 'alt)
 
@@ -1485,69 +1482,6 @@ Values greater than 1.0, expand the arrow.
 \f
 * New Modes and Packages in Emacs 22.1
 
-** ERC is now part of the Emacs distribution.
-
-ERC is a powerful, modular, and extensible IRC client for Emacs.
-
-To see what modules are available, type
-M-x customize-option erc-modules RET.
-
-To start an IRC session with ERC, type M-x erc, and follow the prompts
-for server, port, and nick.
-
-** Rcirc is now part of the Emacs distribution.
-
-Rcirc is an Internet relay chat (IRC) client.  It supports
-simultaneous connections to multiple IRC servers.  Each discussion
-takes place in its own buffer.  For each connection you can join
-several channels (many-to-many) and participate in private
-(one-to-one) chats.  Both channel and private chats are contained in
-separate buffers.
-
-To start an IRC session using the default parameters, type M-x irc.
-If you type C-u M-x irc, it prompts you for the server, nick, port and
-startup channel parameters before connecting.
-
-** Newsticker is now part of the Emacs distribution.
-
-Newsticker asynchronously retrieves headlines (RSS) from a list of news
-sites, prepares these headlines for reading, and allows for loading the
-corresponding articles in a web browser.  Its documentation is in a
-separate manual.
-
-** savehist saves minibuffer histories between sessions.
-To use this feature, turn on savehist-mode in your `.emacs' file.
-
-** Filesets are collections of files.  You can define a fileset in
-various ways, such as based on a directory tree or based on
-program files that include other program files.
-
-Once you have defined a fileset, you can perform various operations on
-all the files in it, such as visiting them or searching and replacing
-in them.
-
-** Calc is now part of the Emacs distribution.
-
-Calc is an advanced desk calculator and mathematical tool written in
-Emacs Lisp.  The prefix for Calc has been changed to `C-x *' and Calc
-can be started with `C-x * *'.  The Calc manual is separate from the
-Emacs manual; within Emacs, type "C-h i m calc RET" to read the
-manual.  A reference card is available in `etc/calccard.tex' and
-`etc/calccard.ps'.
-
-** The new package ibuffer provides a powerful, completely
-customizable replacement for buff-menu.el.
-
-** Ido mode is now part of the Emacs distribution.
-
-The ido (interactively do) package is an extension of the iswitchb
-package to do interactive opening of files and directories in addition
-to interactive buffer switching.  Ido is a superset of iswitchb (with
-a few exceptions), so don't enable both packages.
-
-** Image files are normally visited in Image mode, which lets you toggle
-between viewing the image and viewing the text using C-c C-c.
-
 ** CUA mode is now part of the Emacs distribution.
 
 The new cua package provides CUA-like keybindings using C-x for
@@ -1596,6 +1530,49 @@ versions of cua.el and cua-mode.el.  To ensure proper operation, you
 must remove older versions of cua.el or cua-mode.el as well as the
 loading and customization of those packages from the .emacs file.
 
+** Tramp is now part of the distribution.
+
+This package is similar to Ange-FTP: it allows you to edit remote
+files.  But whereas Ange-FTP uses FTP to access the remote host,
+Tramp uses a shell connection.  The shell connection is always used
+for filename completion and directory listings and suchlike, but for
+the actual file transfer, you can choose between the so-called
+`inline' methods (which transfer the files through the shell
+connection using base64 or uu encoding) and the `out-of-band' methods
+(which invoke an external copying program such as `rcp' or `scp' or
+`rsync' to do the copying).
+
+Shell connections can be acquired via `rsh', `ssh', `telnet' and also
+`su' and `sudo'.  Ange-FTP is still supported via the `ftp' method.
+
+If you want to disable Tramp you should set
+
+  (setq tramp-default-method "ftp")
+
+Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x
+tramp-unload-tramp.
+
+** The image-dired.el package allows you to easily view, tag and in
+other ways manipulate image files and their thumbnails, using dired as
+the main interface.  Image-Dired provides functionality to generate
+simple image galleries.
+
+** Image files are normally visited in Image mode, which lets you toggle
+between viewing the image and viewing the text using C-c C-c.
+
+** The new python.el package is used to edit Python and Jython programs.
+
+** The URL package (which had been part of W3) is now part of Emacs.
+
+** Calc is now part of the Emacs distribution.
+
+Calc is an advanced desk calculator and mathematical tool written in
+Emacs Lisp.  The prefix for Calc has been changed to `C-x *' and Calc
+can be started with `C-x * *'.  The Calc manual is separate from the
+Emacs manual; within Emacs, type "C-h i m calc RET" to read the
+manual.  A reference card is available in `etc/calccard.tex' and
+`etc/calccard.ps'.
+
 ** Org mode is now part of the Emacs distribution
 
 Org mode is a mode for keeping notes, maintaining ToDo lists, and
@@ -1610,8 +1587,48 @@ The documentation for org-mode is in a separate manual; within Emacs,
 type "C-h i m org RET" to read that manual.  A reference card is
 available in `etc/orgcard.tex' and `etc/orgcard.ps'.
 
-** The new package dns-mode.el adds syntax highlighting of DNS master files.
-It is a modern replacement for zone-mode.el, which is now obsolete.
+** ERC is now part of the Emacs distribution.
+
+ERC is a powerful, modular, and extensible IRC client for Emacs.
+
+To see what modules are available, type
+M-x customize-option erc-modules RET.
+
+To start an IRC session with ERC, type M-x erc, and follow the prompts
+for server, port, and nick.
+
+** Rcirc is now part of the Emacs distribution.
+
+Rcirc is an Internet relay chat (IRC) client.  It supports
+simultaneous connections to multiple IRC servers.  Each discussion
+takes place in its own buffer.  For each connection you can join
+several channels (many-to-many) and participate in private
+(one-to-one) chats.  Both channel and private chats are contained in
+separate buffers.
+
+To start an IRC session using the default parameters, type M-x irc.
+If you type C-u M-x irc, it prompts you for the server, nick, port and
+startup channel parameters before connecting.
+
+** The new package ibuffer provides a powerful, completely
+customizable replacement for buff-menu.el.
+
+** Newsticker is now part of the Emacs distribution.
+
+Newsticker asynchronously retrieves headlines (RSS) from a list of news
+sites, prepares these headlines for reading, and allows for loading the
+corresponding articles in a web browser.  Its documentation is in a
+separate manual.
+
+** The wdired.el package allows you to use normal editing commands on Dired
+buffers to change filenames, permissions, etc...
+
+** Ido mode is now part of the Emacs distribution.
+
+The ido (interactively do) package is an extension of the iswitchb
+package to do interactive opening of files and directories in addition
+to interactive buffer switching.  Ido is a superset of iswitchb (with
+a few exceptions), so don't enable both packages.
 
 ** The new global minor mode `file-name-shadow-mode' modifies the way
 filenames being entered by the user in the minibuffer are displayed, so
@@ -1620,33 +1637,6 @@ Emacs' filename parsing rules.  The ignored portion can be made dim,
 invisible, or otherwise less visually noticeable.  The display method can
 be displayed by customizing the variable `file-name-shadow-properties'.
 
-** The new package flymake.el does on-the-fly syntax checking of program
-source files.  See the Flymake's Info manual for more details.
-
-** The new keypad setup package provides several common bindings for
-the numeric keypad which is available on most keyboards.  The numeric
-keypad typically has the digits 0 to 9, a decimal point, keys marked
-+, -, /, and *, an Enter key, and a NumLock toggle key.  The keypad
-package only controls the use of the digit and decimal keys.
-
-By customizing the variables `keypad-setup', `keypad-shifted-setup',
-`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
-using the function `keypad-setup', you can rebind all digit keys and
-the decimal key of the keypad in one step for each of the four
-possible combinations of the Shift key state (not pressed/pressed) and
-the NumLock toggle state (off/on).
-
-The choices for the keypad keys in each of the above states are:
-`Plain numeric keypad' where the keys generates plain digits,
-`Numeric keypad with decimal key' where the character produced by the
-decimal key can be customized individually (for internationalization),
-`Numeric Prefix Arg' where the keypad keys produce numeric prefix args
-for Emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
-where the keys work like (shifted) arrow keys, home/end, etc., and
-`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
-are left unspecified and can be bound individually through the global
-or local keymaps.
-
 ** Emacs' keyboard macro facilities have been enhanced by the new
 kmacro package.
 
@@ -1680,22 +1670,29 @@ Keyboard macros can now be debugged and edited interactively.
 C-x C-k SPC steps through the last keyboard macro one key sequence
 at a time, prompting for the actions to take.
 
-** New minor mode, Visible mode, toggles invisibility in the current buffer.
-When enabled, it makes all invisible text visible.  When disabled, it
-restores the previous value of `buffer-invisibility-spec'.
+** The new keypad setup package provides several common bindings for
+the numeric keypad which is available on most keyboards.  The numeric
+keypad typically has the digits 0 to 9, a decimal point, keys marked
++, -, /, and *, an Enter key, and a NumLock toggle key.  The keypad
+package only controls the use of the digit and decimal keys.
 
-** The wdired.el package allows you to use normal editing commands on Dired
-buffers to change filenames, permissions, etc...
+By customizing the variables `keypad-setup', `keypad-shifted-setup',
+`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
+using the function `keypad-setup', you can rebind all digit keys and
+the decimal key of the keypad in one step for each of the four
+possible combinations of the Shift key state (not pressed/pressed) and
+the NumLock toggle state (off/on).
 
-** The new package longlines.el provides a minor mode for editing text
-files composed of long lines, based on the `use-hard-newlines'
-mechanism.  The long lines are broken up by inserting soft newlines,
-which are automatically removed when saving the file to disk or
-copying into the kill ring, clipboard, etc.  By default, Longlines
-mode inserts soft newlines automatically during editing, a behavior
-referred to as "soft word wrap" in other text editors.  This is
-similar to Refill mode, but more reliable.  To turn the word wrap
-feature off, set `longlines-auto-wrap' to nil.
+The choices for the keypad keys in each of the above states are:
+`Plain numeric keypad' where the keys generates plain digits,
+`Numeric keypad with decimal key' where the character produced by the
+decimal key can be customized individually (for internationalization),
+`Numeric Prefix Arg' where the keypad keys produce numeric prefix args
+for Emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
+where the keys work like (shifted) arrow keys, home/end, etc., and
+`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
+are left unspecified and can be bound individually through the global
+or local keymaps.
 
 ** The printing package is now part of the Emacs distribution.
 
@@ -1706,26 +1703,21 @@ ghostview, use ghostscript to print (if you don't have a PostScript
 printer) or send directly to printer a PostScript code generated by
 `ps-print' package.  Use M-x pr-help for more information.
 
-** The minor mode Reveal mode makes text visible on the fly as you
-move your cursor into hidden regions of the buffer.
-It should work with any package that uses overlays to hide parts
-of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
-
-There is also Global Reveal mode which affects all buffers.
-
-** The ruler-mode.el library provides a minor mode for displaying an
-"active" ruler in the header line.  You can use the mouse to visually
-change the `fill-column', `window-margins' and `tab-stop-list'
-settings.
+** The new package longlines.el provides a minor mode for editing text
+files composed of long lines, based on the `use-hard-newlines'
+mechanism.  The long lines are broken up by inserting soft newlines,
+which are automatically removed when saving the file to disk or
+copying into the kill ring, clipboard, etc.  By default, Longlines
+mode inserts soft newlines automatically during editing, a behavior
+referred to as "soft word wrap" in other text editors.  This is
+similar to Refill mode, but more reliable.  To turn the word wrap
+feature off, set `longlines-auto-wrap' to nil.
 
 ** SES mode (ses-mode) is a new major mode for creating and editing
 spreadsheet files.  Besides the usual Emacs features (intuitive command
 letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers
 viral immunity and import/export of tab-separated values.
 
-** The new global minor mode `size-indication-mode' (off by default)
-shows the size of accessible part of the buffer on the mode line.
-
 ** The new package table.el implements editable, WYSIWYG, embedded
 `text tables' in Emacs buffers.  It simulates the effect of putting
 these tables in a special major mode.  The package emulates WYSIWYG
@@ -1733,37 +1725,48 @@ table editing available in modern word processors.  The package also
 can generate a table source in typesetting and markup languages such
 as latex and html from the visually laid out text table.
 
-** The image-dired.el package allows you to easily view, tag and in
-other ways manipulate image files and their thumbnails, using dired as
-the main interface.  Image-Dired provides functionality to generate
-simple image galleries.
+** Filesets are collections of files.  You can define a fileset in
+various ways, such as based on a directory tree or based on
+program files that include other program files.
 
-** Tramp is now part of the distribution.
+Once you have defined a fileset, you can perform various operations on
+all the files in it, such as visiting them or searching and replacing
+in them.
 
-This package is similar to Ange-FTP: it allows you to edit remote
-files.  But whereas Ange-FTP uses FTP to access the remote host,
-Tramp uses a shell connection.  The shell connection is always used
-for filename completion and directory listings and suchlike, but for
-the actual file transfer, you can choose between the so-called
-`inline' methods (which transfer the files through the shell
-connection using base64 or uu encoding) and the `out-of-band' methods
-(which invoke an external copying program such as `rcp' or `scp' or
-`rsync' to do the copying).
+** The minor mode Reveal mode makes text visible on the fly as you
+move your cursor into hidden regions of the buffer.
+It should work with any package that uses overlays to hide parts
+of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
 
-Shell connections can be acquired via `rsh', `ssh', `telnet' and also
-`su' and `sudo'.  Ange-FTP is still supported via the `ftp' method.
+There is also Global Reveal mode which affects all buffers.
 
-If you want to disable Tramp you should set
+** New minor mode, Visible mode, toggles invisibility in the current buffer.
+When enabled, it makes all invisible text visible.  When disabled, it
+restores the previous value of `buffer-invisibility-spec'.
 
-  (setq tramp-default-method "ftp")
+** The new package flymake.el does on-the-fly syntax checking of program
+source files.  See the Flymake's Info manual for more details.
 
-Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x
-tramp-unload-tramp.
+** savehist saves minibuffer histories between sessions.
+To use this feature, turn on savehist-mode in your `.emacs' file.
 
-** The URL package (which had been part of W3) is now part of Emacs.
+** The ruler-mode.el library provides a minor mode for displaying an
+"active" ruler in the header line.  You can use the mouse to visually
+change the `fill-column', `window-margins' and `tab-stop-list'
+settings.
 
-** `cfengine-mode' is a major mode for editing GNU Cfengine
-configuration files.
+** The file t-mouse.el is now part of Emacs and provides access to mouse
+events from the console.  It still requires gpm to work but has been updated
+for Emacs 22.  In particular, the mode-line is now position sensitive.
+
+** The new package scroll-lock.el provides the Scroll Lock minor mode
+for pager-like scrolling.  Keys which normally move point by line or
+paragraph will scroll the buffer by the respective amount of lines
+instead and point will be kept vertically fixed relative to window
+boundaries during scrolling.
+
+** The new global minor mode `size-indication-mode' (off by default)
+shows the size of accessible part of the buffer on the mode line.
 
 ** The new package conf-mode.el handles thousands of configuration files, with
 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
@@ -1774,35 +1777,211 @@ recognized.
 
 ** GDB-Script-mode is used for files like .gdbinit.
 
-** The TCL package tcl-mode.el was replaced by tcl.el.
-This was actually done in Emacs-21.1, and was not documented.
+** The new package dns-mode.el adds syntax highlighting of DNS master files.
+It is a modern replacement for zone-mode.el, which is now obsolete.
 
-** The new package scroll-lock.el provides the Scroll Lock minor mode
-for pager-like scrolling.  Keys which normally move point by line or
-paragraph will scroll the buffer by the respective amount of lines
-instead and point will be kept vertically fixed relative to window
-boundaries during scrolling.
+** `cfengine-mode' is a major mode for editing GNU Cfengine
+configuration files.
 
-** The file t-mouse.el is now part of Emacs and provides access to mouse
-events from the console.  It still requires gpm to work but has been updated
-for Emacs 22.  In particular, the mode-line is now position sensitive.
+** The TCL package tcl-mode.el was replaced by tcl.el.
+This was actually done in Emacs-21.1, and was not documented.
 \f
 * Changes in Specialized Modes and Packages in Emacs 22.1:
 
-** Changes in Shell Mode
-
-*** Shell output normally scrolls so that the input line is at the
-bottom of the window -- thus showing the maximum possible text.  (This
-is similar to the way sequential output to a terminal works.)
-
 ** Changes in Dired
 
-*** Bindings for Image-Dired added
+*** Bindings for Image-Dired added.
 Several new keybindings, all starting with the C-t prefix, have been
 added to Dired.  They are all bound to commands in Image-Dired.  As a
 starting point, mark some image files in a dired buffer and do C-t d
 to display thumbnails of them in a separate buffer.
 
+** Info mode changes
+
+*** Images in Info pages are supported.
+
+Info pages show embedded images, in Emacs frames with image support.
+Info documentation that includes images, processed with makeinfo
+version 4.7 or newer, compiles to Info pages with embedded images.
+
+*** `Info-index' offers completion.
+
+*** http and ftp links in Info are now operational: they look like cross
+references and following them calls `browse-url'.
+
+*** isearch in Info uses Info-search and searches through multiple nodes.
+
+Before leaving the initial Info node isearch fails once with the error
+message [initial node], and with subsequent C-s/C-r continues through
+other nodes.  When isearch fails for the rest of the manual, it wraps
+around the whole manual to the top/final node.  The user option
+`Info-isearch-search' controls whether to use Info-search for isearch,
+or the default isearch search function that wraps around the current
+Info node.
+
+*** New search commands: `Info-search-case-sensitively' (bound to S),
+`Info-search-backward', and `Info-search-next' which repeats the last
+search without prompting for a new search string.
+
+*** New command `info-apropos' searches the indices of the known
+Info files on your system for a string, and builds a menu of the
+possible matches.
+
+*** New command `Info-history-forward' (bound to r and new toolbar icon)
+moves forward in history to the node you returned from after using
+`Info-history-back' (renamed from `Info-last').
+
+*** New command `Info-history' (bound to L) displays a menu of visited nodes.
+
+*** New command `Info-toc' (bound to T) creates a node with table of contents
+from the tree structure of menus of the current Info file.
+
+*** New command `Info-copy-current-node-name' (bound to w) copies
+the current Info node name into the kill ring.  With a zero prefix
+arg, puts the node name inside the `info' function call.
+
+*** New face `info-xref-visited' distinguishes visited nodes from unvisited
+and a new option `Info-fontify-visited-nodes' to control this.
+
+*** A numeric prefix argument of `info' selects an Info buffer
+with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
+
+*** Info now hides node names in menus and cross references by default.
+
+If you prefer the old behavior, you can set the new user option
+`Info-hide-note-references' to nil.
+
+*** The default value for `Info-scroll-prefer-subnodes' is now nil.
+
+** Emacs server changes
+
+*** You can have several Emacs servers on the same machine.
+
+       % emacs --eval '(setq server-name "foo")' -f server-start &
+       % emacs --eval '(setq server-name "bar")' -f server-start &
+       % emacsclient -s foo file1
+       % emacsclient -s bar file2
+
+*** The `emacsclient' command understands the options `--eval' and
+`--display' which tell Emacs respectively to evaluate the given Lisp
+expression and to use the given display when visiting files.
+
+*** User option `server-mode' can be used to start a server process.
+
+** Locate changes
+
+*** By default, reverting the *Locate* buffer now just runs the last
+`locate' command back over again without offering to update the locate
+database (which normally only works if you have root privileges).  If
+you prefer the old behavior, set the new customizable option
+`locate-update-when-revert' to t.
+
+** Desktop package
+
+*** Desktop saving is now a minor mode, `desktop-save-mode'.
+
+*** The variable `desktop-enable' is obsolete.
+
+Customize `desktop-save-mode' to enable desktop saving.
+
+*** Buffers are saved in the desktop file in the same order as that in the
+buffer list.
+
+*** The desktop package can be customized to restore only some buffers
+immediately, remaining buffers are restored lazily (when Emacs is
+idle).
+
+*** New command line option --no-desktop
+
+*** New commands:
+  - desktop-revert reverts to the last loaded desktop.
+  - desktop-change-dir kills current desktop and loads a new.
+  - desktop-save-in-desktop-dir saves desktop in the directory from which
+    it was loaded.
+  - desktop-lazy-complete runs the desktop load to completion.
+  - desktop-lazy-abort aborts lazy loading of the desktop.
+
+*** New customizable variables:
+  - desktop-save. Determines whether the desktop should be saved when it is
+    killed.
+  - desktop-file-name-format. Format in which desktop file names should be saved.
+  - desktop-path. List of directories in which to lookup the desktop file.
+  - desktop-locals-to-save. List of local variables to save.
+  - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
+  - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
+    should not delete.
+  - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
+    restored lazily (when Emacs is idle).
+  - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
+  - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
+
+*** New hooks:
+  - desktop-after-read-hook run after a desktop is loaded.
+  - desktop-no-desktop-file-hook run when no desktop file is found.
+
+** Recentf changes
+
+The recent file list is now automatically cleaned up when recentf mode is
+enabled.  The new option `recentf-auto-cleanup' controls when to do
+automatic cleanup.
+
+The ten most recent files can be quickly opened by using the shortcut
+keys 1 to 9, and 0, when the recent list is displayed in a buffer via
+the `recentf-open-files', or `recentf-open-more-files' commands.
+
+The `recentf-keep' option replaces `recentf-keep-non-readable-files-p'
+and provides a more general mechanism to customize which file names to
+keep in the recent list.
+
+With the more advanced option `recentf-filename-handlers', you can
+specify functions that successively transform recent file names.  For
+example, if set to `file-truename' plus `abbreviate-file-name', the
+same file will not be in the recent list with different symbolic
+links, and the file name will be abbreviated.
+
+To follow naming convention, `recentf-menu-append-commands-flag'
+replaces the misnamed option `recentf-menu-append-commands-p'.  The
+old name remains available as alias, but has been marked obsolete.
+
+** Auto-Revert changes
+
+*** You can now use Auto Revert mode to `tail' a file.
+
+If point is at the end of a file buffer before reverting, Auto Revert
+mode keeps it at the end after reverting.  Similarly if point is
+displayed at the end of a file buffer in any window, it stays at the
+end of the buffer in that window.  This allows you to "tail" a file:
+just put point at the end of the buffer and it stays there.  This rule
+applies to file buffers.  For non-file buffers, the behavior can be
+mode dependent.
+
+If you are sure that the file will only change by growing at the end,
+then you can tail the file more efficiently by using the new minor
+mode Auto Revert Tail mode.  The function `auto-revert-tail-mode'
+toggles this mode.
+
+*** Auto Revert mode is now more careful to avoid excessive reverts and
+other potential problems when deciding which non-file buffers to
+revert.  This matters especially if Global Auto Revert mode is enabled
+and `global-auto-revert-non-file-buffers' is non-nil.  Auto Revert
+mode only reverts a non-file buffer if the buffer has a non-nil
+`revert-buffer-function' and a non-nil `buffer-stale-function', which
+decides whether the buffer should be reverted.  Currently, this means
+that auto reverting works for Dired buffers (although this may not
+work properly on all operating systems) and for the Buffer Menu.
+
+*** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
+Revert mode reliably updates version control info (such as the version
+control number in the mode line), in all version controlled buffers in
+which it is active.  If the option is nil, the default, then this info
+only gets updated whenever the buffer gets reverted.
+
+** Changes in Shell Mode
+
+*** Shell output normally scrolls so that the input line is at the
+bottom of the window -- thus showing the maximum possible text.  (This
+is similar to the way sequential output to a terminal works.)
+
 ** Changes in Hi Lock
 
 *** hi-lock-mode now only affects a single buffer, and a new function
@@ -1816,6 +1995,19 @@ behavior in older versions of Emacs).
 
 ** Changes in Allout
 
+*** Topic cryptography added, enabling easy gpg topic encryption and
+decryption.  Per-topic basis enables interspersing encrypted-text and
+clear-text within a single file to your heart's content, using symmetric
+and/or public key modes.  Time-limited key caching, user-provided
+symmetric key hinting and consistency verification, auto-encryption of
+pending topics on save, and more, make it easy to use encryption in
+powerful ways.  Encryption behavior customization is collected in the
+allout-encryption customization group.
+
+*** Default command prefix was changed to "\C-c " (control-c space), to
+avoid intruding on user's keybinding space.  Customize the
+`allout-command-prefix' variable to your preference.
+
 *** Some previously rough topic-header format edge cases are reconciled.
 Level 1 topics use the mode's comment format, and lines starting with the
 asterisk - for instance, the comment close of some languages (eg, c's "*/"
@@ -1844,15 +2036,6 @@ other hand, allout now operates gracefully with existing containment
 discontinuities, revealing excessively contained topics rather than either
 leaving them hidden or raising an error.
 
-*** Topic cryptography added, enabling easy gpg topic encryption and
-decryption.  Per-topic basis enables interspersing encrypted-text and
-clear-text within a single file to your heart's content, using symmetric
-and/or public key modes.  Time-limited key caching, user-provided
-symmetric key hinting and consistency verification, auto-encryption of
-pending topics on save, and more, make it easy to use encryption in
-powerful ways.  Encryption behavior customization is collected in the
-allout-encryption customization group.
-
 *** Navigation within an item is easier.  Repeated beginning-of-line and
 end-of-line key commands (usually, ^A and ^E) cycle through the
 beginning/end-of-line and then beginning/end of topic, etc.  See new
@@ -1878,10 +2061,6 @@ coordinating with deactivation of allout-mode.  Both that and the mode
 activation hook, `allout-mode-hook' are now run after the `allout-mode'
 variable is changed, rather than before.
 
-*** Default command prefix was changed to "\C-c " (control-c space), to
-avoid intruding on user's keybinding space.  Customize the
-`allout-command-prefix' variable to your preference.
-
 *** Allout now uses text overlay's `invisible' property for concealed text,
 instead of selective-display.  This simplifies the code, in particular
 avoiding the need for kludges for isearch dynamic-display, discretionary
@@ -1912,149 +2091,274 @@ handling of edits of concealed text, undo concerns, etc.
    - many, many other, more minor tweaks, fixes, and refinements.
    - version number incremented to 2.2
 
-** The variable `woman-topic-at-point' is renamed
-to `woman-use-topic-at-point' and behaves differently: if this
-variable is non-nil, the `woman' command uses the word at point
-automatically, without asking for a confirmation.  Otherwise, the word
-at point is suggested as default, but not inserted at the prompt.
+** Hideshow mode changes
 
-** Changes to cmuscheme
+*** New variable `hs-set-up-overlay' allows customization of the overlay
+used to effect hiding for hideshow minor mode.  Integration with isearch
+handles the overlay property `display' specially, preserving it during
+temporary overlay showing in the course of an isearch operation.
 
-*** Emacs now offers to start Scheme if the user tries to
-evaluate a Scheme expression but no Scheme subprocess is running.
+*** New variable `hs-allow-nesting' non-nil means that hiding a block does
+not discard the hidden state of any "internal" blocks; when the parent
+block is later shown, the internal blocks remain hidden.  Default is nil.
 
-*** If the file ~/.emacs_NAME or ~/.emacs.d/init_NAME.scm (where NAME
-is the name of the Scheme interpreter) exists, its contents are sent
-to the Scheme subprocess upon startup.
+** FFAP changes
 
-*** There are new commands to instruct the Scheme interpreter to trace
-procedure calls (`scheme-trace-procedure') and to expand syntactic forms
-(`scheme-expand-current-form').  The commands actually sent to the Scheme
-subprocess are controlled by the user options `scheme-trace-command',
-`scheme-untrace-command' and `scheme-expand-current-form'.
+*** New ffap commands and keybindings:
 
-** Changes in Makefile mode
+C-x C-r (`ffap-read-only'),
+C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
+C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
+C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
 
-*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
+*** FFAP accepts wildcards in a file name by default.
 
-The former two couldn't be differentiated before, and the latter three
-are new.  Font-locking is robust now and offers new customizable
-faces.
+C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
+argument, which visits multiple files, and C-x d passes it to `dired'.
 
-*** The variable `makefile-query-one-target-method' has been renamed
-to `makefile-query-one-target-method-function'.  The old name is still
-available as alias.
+** Changes in Skeleton
 
-** In Outline mode, `hide-body' no longer hides lines at the top
-of the file that precede the first header line.
+*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
 
-** Telnet now prompts you for a port number with C-u M-x telnet.
+`@' has reverted to only setting `skeleton-positions' and no longer
+sets `skeleton-point'.  Skeletons which used @ to mark
+`skeleton-point' independent of `_' should now use `-' instead.  The
+updated `skeleton-insert' docstring explains these new features along
+with other details of skeleton construction.
 
-** The terminal emulation code in term.el has been improved; it can
-run most curses applications now.
+*** The variables `skeleton-transformation', `skeleton-filter', and
+`skeleton-pair-filter' have been renamed to
+`skeleton-transformation-function', `skeleton-filter-function', and
+`skeleton-pair-filter-function'.  The old names are still available
+as aliases.
+
+** HTML/SGML changes
 
-** M-x diff uses Diff mode instead of Compilation mode.
+*** Emacs now tries to set up buffer coding systems for HTML/XML files
+automatically.
+
+*** SGML mode has indentation and supports XML syntax.
+The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
+When this option is enabled, SGML tags are inserted in XML style,
+i.e., there is always a closing tag.
+By default, its setting is inferred on a buffer-by-buffer basis
+from the file name or buffer contents.
+
+*** The variable `sgml-transformation' has been renamed to
+`sgml-transformation-function'.  The old name is still available as
+alias.
+
+*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
+
+** TeX modes
+
+*** New major mode Doctex mode, for *.dtx files.
+
+*** C-c C-c prompts for a command to run, and tries to offer a good default.
+
+*** The user option `tex-start-options-string' has been replaced
+by two new user options: `tex-start-options', which should hold
+command-line options to feed to TeX, and `tex-start-commands' which should hold
+TeX commands to use at startup.
+
+*** verbatim environments are now highlighted in courier by font-lock
+and super/sub-scripts are made into super/sub-scripts.
+
+** RefTeX mode changes
+
+*** Changes to RefTeX's table of contents
+
+The new command keys "<" and ">" in the TOC buffer promote/demote the
+section at point or all sections in the current region, with full
+support for multifile documents.
+
+The new command `reftex-toc-recenter' (`C-c -') shows the current
+section in the TOC buffer without selecting the TOC window.
+Recentering can happen automatically in idle time when the option
+`reftex-auto-recenter-toc' is turned on.  The highlight in the TOC
+buffer stays when the focus moves to a different window.  A dedicated
+frame can show the TOC with the current section always automatically
+highlighted.  The frame is created and deleted from the toc buffer
+with the `d' key.
+
+The toc window can be split off horizontally instead of vertically.
+See new option `reftex-toc-split-windows-horizontally'.
+
+Labels can be renamed globally from the table of contents using the
+key `M-%'.
+
+The new command `reftex-goto-label' jumps directly to a label
+location.
 
-** Diff mode key bindings changed.
+*** Changes related to citations and BibTeX database files
+
+Commands that insert a citation now prompt for optional arguments when
+called with a prefix argument.  Related new options are
+`reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'.
+
+The new command `reftex-create-bibtex-file' creates a BibTeX database
+with all entries referenced in the current document.  The keys "e" and
+"E" allow to produce a BibTeX database file from entries marked in a
+citation selection buffer.
+
+The command `reftex-citation' uses the word in the buffer before the
+cursor as a default search string.
+
+The support for chapterbib has been improved.  Different chapters can
+now use BibTeX or an explicit `thebibliography' environment.
+
+The macros which specify the bibliography file (like \bibliography)
+can be configured with the new option `reftex-bibliography-commands'.
+
+Support for jurabib has been added.
+
+*** Global index matched may be verified with a user function.
+
+During global indexing, a user function can verify an index match.
+See new option `reftex-index-verify-function'.
+
+*** Parsing documents with many labels can be sped up.
+
+Operating in a document with thousands of labels can be sped up
+considerably by allowing RefTeX to derive the type of a label directly
+from the label prefix like `eq:' or `fig:'.  The option
+`reftex-trust-label-prefix' needs to be configured in order to enable
+this feature.  While the speed-up is significant, this may reduce the
+quality of the context offered by RefTeX to describe a label.
+
+*** Miscellaneous changes
+
+The macros which input a file in LaTeX (like \input, \include) can be
+configured in the new option `reftex-include-file-commands'.
+
+RefTeX supports global incremental search.
+
+** BibTeX mode
+
+*** The new command `bibtex-url' browses a URL for the BibTeX entry at
+point (bound to C-c C-l and mouse-2, RET on clickable fields).
+
+*** The new command `bibtex-entry-update' (bound to C-c C-u) updates
+an existing BibTeX entry by inserting fields that may occur but are not
+present.
+
+*** New `bibtex-entry-format' option `required-fields', enabled by default.
+
+*** `bibtex-maintain-sorted-entries' can take values `plain',
+`crossref', and `entry-class' which control the sorting scheme used
+for BibTeX entries.  `bibtex-sort-entry-class' controls the sorting
+scheme `entry-class'.  TAB completion for reference keys and
+automatic detection of duplicates does not require anymore that
+`bibtex-maintain-sorted-entries' is non-nil.
 
-These are the new bindings:
+*** The new command `bibtex-complete' completes word fragment before
+point according to context (bound to M-tab).
 
-C-c C-e   diff-ediff-patch  (old M-A)
-C-c C-n   diff-restrict-view   (old M-r)
-C-c C-r   diff-reverse-direction  (old M-R)
-C-c C-u   diff-context->unified   (old M-U)
-C-c C-w   diff-refine-hunk  (old C-c C-r)
+*** In BibTeX mode the command `fill-paragraph' (M-q) fills
+individual fields of a BibTeX entry.
 
-To convert unified to context format, use C-u C-c C-u.
-In addition, C-c C-u now operates on the region
-in Transient Mark mode when the mark is active.
+*** The new variable `bibtex-autofill-types' contains a list of entry
+types for which fields are filled automatically (if possible).
 
-** You can now customize `fill-nobreak-predicate' to control where
-filling can break lines.  The value is now normally a list of
-functions, but it can also be a single function, for compatibility.
+*** The new commands `bibtex-find-entry' and `bibtex-find-crossref'
+locate entries and crossref'd entries (bound to C-c C-s and C-c C-x).
+Crossref fields are clickable (bound to mouse-2, RET).
 
-Emacs provide two predicates, `fill-single-word-nobreak-p' and
-`fill-french-nobreak-p', for use as the value of
-`fill-nobreak-predicate'.
+*** The new variables `bibtex-files' and `bibtex-file-path' define a set
+of BibTeX files that are searched for entry keys.
 
-** M-x view-file and commands that use it now avoid interfering
-with special modes such as Tar mode.
+*** The new command `bibtex-validate-globally' checks for duplicate keys
+in multiple BibTeX files.
 
-** Commands `winner-redo' and `winner-undo', from winner.el, are now
-bound to C-c <left> and C-c <right>, respectively.  This is an
-incompatible change.
+*** If the new variable `bibtex-autoadd-commas' is non-nil,
+automatically add missing commas at end of BibTeX fields.
 
-** `global-whitespace-mode' is a new alias for `whitespace-global-mode'.
+*** The new command `bibtex-copy-summary-as-kill' pushes summary
+of BibTeX entry to kill ring (bound to C-c C-t).
 
-** M-x compare-windows now can automatically skip non-matching text to
-resync points in both windows.
+*** If the new variable `bibtex-parse-keys-fast' is non-nil,
+use fast but simplified algorithm for parsing BibTeX keys.
 
-** New user option `add-log-always-start-new-record'.
+*** The new variables bibtex-expand-strings and
+bibtex-autokey-expand-strings control the expansion of strings when
+extracting the content of a BibTeX field.
 
-When this option is enabled, M-x add-change-log-entry always
-starts a new record regardless of when the last record is.
+*** The variables `bibtex-autokey-name-case-convert' and
+`bibtex-autokey-titleword-case-convert' have been renamed to
+`bibtex-autokey-name-case-convert-function' and
+`bibtex-autokey-titleword-case-convert-function'.  The old names are
+still available as aliases.
 
-** PO translation files are decoded according to their MIME headers
-when Emacs visits them.
+** GUD changes
 
-** Info mode changes:
+*** The new package gdb-ui.el provides an enhanced graphical interface to
+GDB.  You can interact with GDB through the GUD buffer in the usual way, but
+there are also further buffers which control the execution and describe the
+state of your program.  It can separate the input/output of your program from
+that of GDB and watches expressions in the speedbar.  It also uses features of
+Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate
+breakpoints.
 
-*** A numeric prefix argument of `info' selects an Info buffer
-with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
+To use this package just type M-x gdb.  See the Emacs manual if you want the
+old behaviour.
 
-*** isearch in Info uses Info-search and searches through multiple nodes.
+*** GUD mode has its own tool bar for controlling execution of the inferior
+and other common debugger commands.
 
-Before leaving the initial Info node isearch fails once with the error
-message [initial node], and with subsequent C-s/C-r continues through
-other nodes.  When isearch fails for the rest of the manual, it wraps
-around the whole manual to the top/final node.  The user option
-`Info-isearch-search' controls whether to use Info-search for isearch,
-or the default isearch search function that wraps around the current
-Info node.
+*** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program
+counter to the specified source line (the one where point is).
 
-*** New search commands: `Info-search-case-sensitively' (bound to S),
-`Info-search-backward', and `Info-search-next' which repeats the last
-search without prompting for a new search string.
+*** The variable tooltip-gud-tips-p has been removed.  GUD tooltips can now be
+toggled independently of normal tooltips with the minor mode
+`gud-tooltip-mode'.
 
-*** New command `Info-history-forward' (bound to r and new toolbar icon)
-moves forward in history to the node you returned from after using
-`Info-history-back' (renamed from `Info-last').
+*** In graphical mode, with a C program, GUD Tooltips have been extended to
+display the #define directive associated with an identifier when program is
+not executing.
 
-*** New command `Info-history' (bound to L) displays a menu of visited nodes.
+*** GUD mode improvements for jdb:
 
-*** New command `Info-toc' (bound to T) creates a node with table of contents
-from the tree structure of menus of the current Info file.
+**** Search for source files using jdb classpath and class information.
+Fast startup since there is no need to scan all source files up front.
+There is also no need to create and maintain lists of source
+directories to scan.  Look at `gud-jdb-use-classpath' and
+`gud-jdb-classpath' customization variables documentation.
 
-*** New command `info-apropos' searches the indices of the known
-Info files on your system for a string, and builds a menu of the
-possible matches.
+**** The previous method of searching for source files has been
+preserved in case someone still wants/needs to use it.
+Set `gud-jdb-use-classpath' to nil.
 
-*** New command `Info-copy-current-node-name' (bound to w) copies
-the current Info node name into the kill ring.  With a zero prefix
-arg, puts the node name inside the `info' function call.
+**** Supports the standard breakpoint (gud-break, gud-clear)
+set/clear operations from Java source files under the classpath, stack
+traversal (gud-up, gud-down), and run until current stack finish
+(gud-finish).
 
-*** New face `info-xref-visited' distinguishes visited nodes from unvisited
-and a new option `Info-fontify-visited-nodes' to control this.
+**** Supports new jdb (Java 1.2 and later) in addition to oldjdb
+(Java 1.1 jdb).
 
-*** http and ftp links in Info are now operational: they look like cross
-references and following them calls `browse-url'.
+*** Added jdb Customization Variables
 
-*** Info now hides node names in menus and cross references by default.
+**** `gud-jdb-command-name'.  What command line to use to invoke jdb.
 
-If you prefer the old behavior, you can set the new user option
-`Info-hide-note-references' to nil.
+**** `gud-jdb-use-classpath'.  Allows selection of java source file searching
+method: set to t for new method, nil to scan `gud-jdb-directories' for
+java sources (previous method).
 
-*** Images in Info pages are supported.
+**** `gud-jdb-directories'.  List of directories to scan and search for Java
+classes using the original gud-jdb method (if `gud-jdb-use-classpath'
+is nil).
 
-Info pages show embedded images, in Emacs frames with image support.
-Info documentation that includes images, processed with makeinfo
-version 4.7 or newer, compiles to Info pages with embedded images.
+*** Minor Improvements
 
-*** The default value for `Info-scroll-prefer-subnodes' is now nil.
+**** The STARTTLS wrapper (starttls.el) can now use GNUTLS
+instead of the OpenSSL based `starttls' tool.  For backwards
+compatibility, it prefers `starttls', but you can toggle
+`starttls-use-gnutls' to switch to GNUTLS (or simply remove the
+`starttls' tool).
 
-*** `Info-index' offers completion.
+**** Do not allow debugger output history variable to grow without bounds.
 
-** Lisp mode changes:
+** Lisp mode changes
 
 *** Lisp mode now uses `font-lock-doc-face' for doc strings.
 
@@ -2071,33 +2375,46 @@ by the new function `eval-expression-print-format'.  The same
 function also defines the result format for `eval-expression' (M-:),
 `eval-print-last-sexp' (C-j) and some edebug evaluation functions.
 
-** CC mode changes.
+** Changes to cmuscheme
 
-*** The CC Mode manual has been extensively revised.
-The information about using CC Mode has been separated from the larger
-and more difficult chapters about configuration.
+*** Emacs now offers to start Scheme if the user tries to
+evaluate a Scheme expression but no Scheme subprocess is running.
 
-*** Changes in Key Sequences
-**** c-toggle-auto-hungry-state is no longer bound to C-c C-t.
+*** If the file ~/.emacs_NAME or ~/.emacs.d/init_NAME.scm (where NAME
+is the name of the Scheme interpreter) exists, its contents are sent
+to the Scheme subprocess upon startup.
 
-**** c-toggle-hungry-state is no longer bound to C-c C-d.
-This binding has been taken over by c-hungry-delete-forwards.
+*** There are new commands to instruct the Scheme interpreter to trace
+procedure calls (`scheme-trace-procedure') and to expand syntactic forms
+(`scheme-expand-current-form').  The commands actually sent to the Scheme
+subprocess are controlled by the user options `scheme-trace-command',
+`scheme-untrace-command' and `scheme-expand-current-form'.
 
-**** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline.
-c-toggle-auto-state remains as an alias.
+** Ewoc changes
 
-**** The new commands c-hungry-backspace and c-hungry-delete-forwards
-have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and
-C-c C-d (or C-c C-<delete> or C-c <delete>) respectively.  These
-commands delete entire blocks of whitespace with a single
-key-sequence.  [N.B. "DEL" is the <backspace> key.]
+*** The new function `ewoc-delete' deletes specified nodes.
 
-**** The new command c-toggle-electric-mode is bound to C-c C-l.
+*** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
+a newline after each pretty-printed entry and after the header and footer.
+This allows you to create multiple-entry ewocs on a single line and to
+effect "invisible" nodes by arranging for the pretty-printer to not print
+anything for those nodes.
 
-**** The new command c-subword-mode is bound to C-c C-w.
+For example, these two sequences of expressions behave identically:
 
-*** C-c C-s (`c-show-syntactic-information') now highlights the anchor
-position(s).
+;; NOSEP nil
+(defun PP (data) (insert (format "%S" data)))
+(ewoc-create 'PP "start\n")
+
+;; NOSEP t
+(defun PP (data) (insert (format "%S\n" data)))
+(ewoc-create 'PP "start\n\n" "\n" t)
+
+** CC mode changes
+
+*** The CC Mode manual has been extensively revised.
+The information about using CC Mode has been separated from the larger
+and more difficult chapters about configuration.
 
 *** New Minor Modes
 **** Electric Minor Mode toggles the electric action of non-alphabetic keys.
@@ -2111,15 +2428,41 @@ disconcerting.  Its current state is displayed in the mode line with an
 letters in StudlyCapsIdentifiers.  You enable this feature by C-c C-w.  It can
 also be used in non-CC Mode buffers.  :-) Contributed by Masatake YAMATO.
 
-*** New clean-ups
+*** Support for the AWK language.
+Support for the AWK language has been introduced.  The implementation is
+based around GNU AWK version 3.1, but it should work pretty well with
+any AWK.  As yet, not all features of CC Mode have been adapted for AWK.
+Here is a summary:
 
-**** `comment-close-slash'.
-With this clean-up, a block (i.e. c-style) comment can be terminated by
-typing a slash at the start of a line.
+**** Indentation Engine
+The CC Mode indentation engine fully supports AWK mode.
 
-**** `c-one-liner-defun'
-This clean-up compresses a short enough defun (for example, an AWK
-pattern/action pair) onto a single line.  "Short enough" is configurable.
+AWK mode handles code formatted in the conventional AWK fashion: `{'s
+which start actions, user-defined functions, or compound statements are
+placed on the same line as the associated construct; the matching `}'s
+are normally placed under the start of the respective pattern, function
+definition, or structured statement.
+
+The predefined line-up functions haven't yet been adapted for AWK
+mode, though some of them may work serendipitously.  There shouldn't
+be any problems writing custom indentation functions for AWK mode.
+
+**** Font Locking
+There is a single level of font locking in AWK mode, rather than the
+three distinct levels the other modes have.  There are several
+idiosyncrasies in AWK mode's font-locking due to the peculiarities of
+the AWK language itself.
+
+**** Comment and Movement Commands
+These commands all work for AWK buffers.  The notion of "defun" has
+been augmented to include AWK pattern-action pairs - the standard
+"defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this
+extended definition.
+
+**** "awk" style, Auto-newline Insertion and Clean-ups
+A new style, "awk" has been introduced, and this is now the default
+style for AWK code.  With auto-newline enabled, the clean-up
+c-one-liner-defun (see above) is useful.
 
 *** Font lock support.
 CC Mode now provides font lock support for all its languages.  This
@@ -2182,41 +2525,27 @@ The special "@" declarations in Objective-C are handled correctly.
 All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and
 handled correctly, also wrt indentation.
 
-*** Support for the AWK language.
-Support for the AWK language has been introduced.  The implementation is
-based around GNU AWK version 3.1, but it should work pretty well with
-any AWK.  As yet, not all features of CC Mode have been adapted for AWK.
-Here is a summary:
+*** Changes in Key Sequences
+**** c-toggle-auto-hungry-state is no longer bound to C-c C-t.
 
-**** Indentation Engine
-The CC Mode indentation engine fully supports AWK mode.
+**** c-toggle-hungry-state is no longer bound to C-c C-d.
+This binding has been taken over by c-hungry-delete-forwards.
 
-AWK mode handles code formatted in the conventional AWK fashion: `{'s
-which start actions, user-defined functions, or compound statements are
-placed on the same line as the associated construct; the matching `}'s
-are normally placed under the start of the respective pattern, function
-definition, or structured statement.
+**** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline.
+c-toggle-auto-state remains as an alias.
 
-The predefined line-up functions haven't yet been adapted for AWK
-mode, though some of them may work serendipitously.  There shouldn't
-be any problems writing custom indentation functions for AWK mode.
+**** The new commands c-hungry-backspace and c-hungry-delete-forwards
+have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and
+C-c C-d (or C-c C-<delete> or C-c <delete>) respectively.  These
+commands delete entire blocks of whitespace with a single
+key-sequence.  [N.B. "DEL" is the <backspace> key.]
 
-**** Font Locking
-There is a single level of font locking in AWK mode, rather than the
-three distinct levels the other modes have.  There are several
-idiosyncrasies in AWK mode's font-locking due to the peculiarities of
-the AWK language itself.
+**** The new command c-toggle-electric-mode is bound to C-c C-l.
 
-**** Comment and Movement Commands
-These commands all work for AWK buffers.  The notion of "defun" has
-been augmented to include AWK pattern-action pairs - the standard
-"defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this
-extended definition.
+**** The new command c-subword-mode is bound to C-c C-w.
 
-**** "awk" style, Auto-newline Insertion and Clean-ups
-A new style, "awk" has been introduced, and this is now the default
-style for AWK code.  With auto-newline enabled, the clean-up
-c-one-liner-defun (see above) is useful.
+*** C-c C-s (`c-show-syntactic-information') now highlights the anchor
+position(s).
 
 *** New syntactic symbols in IDL mode.
 The top level constructs "module" and "composition" (from CIDL) are
@@ -2347,6 +2676,16 @@ cases (something which was hardcoded earlier).
 *** New function `c-context-open-line'.
 It's the open-line equivalent of `c-context-line-break'.
 
+*** New clean-ups
+
+**** `comment-close-slash'.
+With this clean-up, a block (i.e. c-style) comment can be terminated by
+typing a slash at the start of a line.
+
+**** `c-one-liner-defun'
+This clean-up compresses a short enough defun (for example, an AWK
+pattern/action pair) onto a single line.  "Short enough" is configurable.
+
 *** New lineup functions
 
 **** `c-lineup-string-cont'
@@ -2369,6 +2708,10 @@ Provides better indentation inside asm blocks.
 **** `c-lineup-argcont'
 Lines up continued function arguments after the preceding comma.
 
+*** Added toggle for syntactic indentation.
+The function `c-toggle-syntactic-indentation' can be used to toggle
+syntactic indentation.
+
 *** Better caching of the syntactic context.
 CC Mode caches the positions of the opening parentheses (of any kind)
 of the lists surrounding the point.  Those positions are used in many
@@ -2394,386 +2737,194 @@ point doesn't have to be immediately before the block to indent.
 Also, only the block and the closing line is indented; the current
 line is left untouched.
 
-*** Added toggle for syntactic indentation.
-The function `c-toggle-syntactic-indentation' can be used to toggle
-syntactic indentation.
-
-** In sh-script, a continuation line is only indented if the backslash was
-preceded by a SPC or a TAB.
-
-** Perl mode has a new variable `perl-indent-continued-arguments'.
-
-** The old Octave mode bindings C-c f and C-c i have been changed
-to C-c C-f and C-c C-i.  The C-c C-i subcommands now have duplicate
-bindings on control characters--thus, C-c C-i C-b is the same as
-C-c C-i b, and so on.
-
-** Fortran mode changes:
-
-*** Fortran mode does more font-locking by default.  Use level 3
-highlighting for the old default.
-
-*** Fortran mode has a new variable `fortran-directive-re'.
-Adapt this to match the format of any compiler directives you use.
-Lines that match are never indented, and are given distinctive font-locking.
-
-*** F90 mode and Fortran mode have new navigation commands
-`f90-end-of-block', `f90-beginning-of-block', `f90-next-block',
-`f90-previous-block', `fortran-end-of-block',
-`fortran-beginning-of-block'.
-
-*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
-It cannot deal with every code format, but ought to handle a sizeable
-majority.
-
-*** The new function `f90-backslash-not-special' can be used to change
-the syntax of backslashes in F90 buffers.
-
-** Reftex mode changes
-
-*** Changes to RefTeX's table of contents
-
-The new command keys "<" and ">" in the TOC buffer promote/demote the
-section at point or all sections in the current region, with full
-support for multifile documents.
-
-The new command `reftex-toc-recenter' (`C-c -') shows the current
-section in the TOC buffer without selecting the TOC window.
-Recentering can happen automatically in idle time when the option
-`reftex-auto-recenter-toc' is turned on.  The highlight in the TOC
-buffer stays when the focus moves to a different window.  A dedicated
-frame can show the TOC with the current section always automatically
-highlighted.  The frame is created and deleted from the toc buffer
-with the `d' key.
-
-The toc window can be split off horizontally instead of vertically.
-See new option `reftex-toc-split-windows-horizontally'.
-
-Labels can be renamed globally from the table of contents using the
-key `M-%'.
-
-The new command `reftex-goto-label' jumps directly to a label
-location.
-
-*** Changes related to citations and BibTeX database files
-
-Commands that insert a citation now prompt for optional arguments when
-called with a prefix argument.  Related new options are
-`reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'.
-
-The new command `reftex-create-bibtex-file' creates a BibTeX database
-with all entries referenced in the current document.  The keys "e" and
-"E" allow to produce a BibTeX database file from entries marked in a
-citation selection buffer.
-
-The command `reftex-citation' uses the word in the buffer before the
-cursor as a default search string.
-
-The support for chapterbib has been improved.  Different chapters can
-now use BibTeX or an explicit `thebibliography' environment.
-
-The macros which specify the bibliography file (like \bibliography)
-can be configured with the new option `reftex-bibliography-commands'.
-
-Support for jurabib has been added.
-
-*** Global index matched may be verified with a user function
-
-During global indexing, a user function can verify an index match.
-See new option `reftex-index-verify-function'.
-
-*** Parsing documents with many labels can be sped up.
-
-Operating in a document with thousands of labels can be sped up
-considerably by allowing RefTeX to derive the type of a label directly
-from the label prefix like `eq:' or `fig:'.  The option
-`reftex-trust-label-prefix' needs to be configured in order to enable
-this feature.  While the speed-up is significant, this may reduce the
-quality of the context offered by RefTeX to describe a label.
-
-*** Miscellaneous changes
-
-The macros which input a file in LaTeX (like \input, \include) can be
-configured in the new option `reftex-include-file-commands'.
-
-RefTeX supports global incremental search.
-
-** Prolog mode has a new variable `prolog-font-lock-keywords'
-to support use of font-lock.
-
-** HTML/SGML changes:
-
-*** Emacs now tries to set up buffer coding systems for HTML/XML files
-automatically.
-
-*** SGML mode has indentation and supports XML syntax.
-The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
-When this option is enabled, SGML tags are inserted in XML style,
-i.e., there is always a closing tag.
-By default, its setting is inferred on a buffer-by-buffer basis
-from the file name or buffer contents.
-
-*** The variable `sgml-transformation' has been renamed to
-`sgml-transformation-function'.  The old name is still available as
-alias.
-
-*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
-
-** TeX modes:
-
-*** C-c C-c prompts for a command to run, and tries to offer a good default.
-
-*** The user option `tex-start-options-string' has been replaced
-by two new user options: `tex-start-options', which should hold
-command-line options to feed to TeX, and `tex-start-commands' which should hold
-TeX commands to use at startup.
-
-*** verbatim environments are now highlighted in courier by font-lock
-and super/sub-scripts are made into super/sub-scripts.
-
-*** New major mode Doctex mode, for *.dtx files.
-
-** BibTeX mode:
-
-*** The new command `bibtex-url' browses a URL for the BibTeX entry at
-point (bound to C-c C-l and mouse-2, RET on clickable fields).
-
-*** The new command `bibtex-entry-update' (bound to C-c C-u) updates
-an existing BibTeX entry by inserting fields that may occur but are not
-present.
-
-*** New `bibtex-entry-format' option `required-fields', enabled by default.
-
-*** `bibtex-maintain-sorted-entries' can take values `plain',
-`crossref', and `entry-class' which control the sorting scheme used
-for BibTeX entries.  `bibtex-sort-entry-class' controls the sorting
-scheme `entry-class'.  TAB completion for reference keys and
-automatic detection of duplicates does not require anymore that
-`bibtex-maintain-sorted-entries' is non-nil.
-
-*** If the new variable `bibtex-parse-keys-fast' is non-nil,
-use fast but simplified algorithm for parsing BibTeX keys.
-
-*** If the new variable `bibtex-autoadd-commas' is non-nil,
-automatically add missing commas at end of BibTeX fields.
-
-*** The new variable `bibtex-autofill-types' contains a list of entry
-types for which fields are filled automatically (if possible).
+** Changes in Makefile mode
 
-*** The new command `bibtex-complete' completes word fragment before
-point according to context (bound to M-tab).
+*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
 
-*** The new commands `bibtex-find-entry' and `bibtex-find-crossref'
-locate entries and crossref'd entries (bound to C-c C-s and C-c C-x).
-Crossref fields are clickable (bound to mouse-2, RET).
+The former two couldn't be differentiated before, and the latter three
+are new.  Font-locking is robust now and offers new customizable
+faces.
 
-*** In BibTeX mode the command `fill-paragraph' (M-q) fills
-individual fields of a BibTeX entry.
+*** The variable `makefile-query-one-target-method' has been renamed
+to `makefile-query-one-target-method-function'.  The old name is still
+available as alias.
 
-*** The new variables `bibtex-files' and `bibtex-file-path' define a set
-of BibTeX files that are searched for entry keys.
+** Sql changes
 
-*** The new command `bibtex-validate-globally' checks for duplicate keys
-in multiple BibTeX files.
+*** The variable `sql-product' controls the highlighting of different
+SQL dialects.  This variable can be set globally via Customize, on a
+buffer-specific basis via local variable settings, or for the current
+session using the new SQL->Product submenu.  (This menu replaces the
+SQL->Highlighting submenu.)
 
-*** The new command `bibtex-copy-summary-as-kill' pushes summary
-of BibTeX entry to kill ring (bound to C-c C-t).
+The following values are supported:
 
-*** The new variables bibtex-expand-strings and
-bibtex-autokey-expand-strings control the expansion of strings when
-extracting the content of a BibTeX field.
+    ansi       ANSI Standard (default)
+    db2                DB2
+    informix    Informix
+    ingres      Ingres
+    interbase  Interbase
+    linter     Linter
+    ms         Microsoft
+    mysql      MySQL
+    oracle     Oracle
+    postgres   Postgres
+    solid       Solid
+    sqlite      SQLite
+    sybase      Sybase
 
-*** The variables `bibtex-autokey-name-case-convert' and
-`bibtex-autokey-titleword-case-convert' have been renamed to
-`bibtex-autokey-name-case-convert-function' and
-`bibtex-autokey-titleword-case-convert-function'.  The old names are
-still available as aliases.
+The current product name will be shown on the mode line following the
+SQL mode indicator.
 
-** In Artist mode the variable `artist-text-renderer' has been
-renamed to `artist-text-renderer-function'.  The old name is still
-available as alias.
+The technique of setting `sql-mode-font-lock-defaults' directly in
+your `.emacs' will no longer establish the default highlighting -- Use
+`sql-product' to accomplish this.
 
-** In Enriched mode, `set-left-margin' and `set-right-margin' are now
-by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
-and `C-c C-r'.
+ANSI keywords are always highlighted.
 
-** GUD changes:
+*** The function `sql-add-product-keywords' can be used to add
+font-lock rules to the product specific rules.  For example, to have
+all identifiers ending in `_t' under MS SQLServer treated as a type,
+you would use the following line in your .emacs file:
 
-*** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program
-counter to the specified source line (the one where point is).
+  (sql-add-product-keywords 'ms
+             '(("\\<\\w+_t\\>" . font-lock-type-face)))
 
-*** GUD mode has its own tool bar for controlling execution of the inferior
-and other common debugger commands.
+*** Oracle support includes keyword highlighting for Oracle 9i.
 
-*** The new package gdb-ui.el provides an enhanced graphical interface to
-GDB.  You can interact with GDB through the GUD buffer in the usual way, but
-there are also further buffers which control the execution and describe the
-state of your program.  It can separate the input/output of your program from
-that of GDB and watches expressions in the speedbar.  It also uses features of
-Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate
-breakpoints.
+Most SQL and PL/SQL keywords are implemented.  SQL*Plus commands are
+highlighted in `font-lock-doc-face'.
 
-To use this package just type M-x gdb.  See the Emacs manual if you want the
-old behaviour.
+*** Microsoft SQLServer support has been significantly improved.
 
-*** The variable tooltip-gud-tips-p has been removed.  GUD tooltips can now be
-toggled independently of normal tooltips with the minor mode
-`gud-tooltip-mode'.
+Keyword highlighting for SqlServer 2000 is implemented.
+sql-interactive-mode defaults to use osql, rather than isql, because
+osql flushes its error stream more frequently.  Thus error messages
+are displayed when they occur rather than when the session is
+terminated.
 
-*** In graphical mode, with a C program, GUD Tooltips have been extended to
-display the #define directive associated with an identifier when program is
-not executing.
+If the username and password are not provided to `sql-ms', osql is
+called with the `-E' command line argument to use the operating system
+credentials to authenticate the user.
 
-** GUD mode improvements for jdb:
+*** Postgres support is enhanced.
+Keyword highlighting of Postgres 7.3 is implemented.  Prompting for
+the username and the pgsql `-U' option is added.
 
-*** Search for source files using jdb classpath and class information.
-Fast startup since there is no need to scan all source files up front.
-There is also no need to create and maintain lists of source
-directories to scan.  Look at `gud-jdb-use-classpath' and
-`gud-jdb-classpath' customization variables documentation.
+*** MySQL support is enhanced.
+Keyword highlighting of MySql 4.0 is implemented.
 
-*** Supports the standard breakpoint (gud-break, gud-clear)
-set/clear operations from Java source files under the classpath, stack
-traversal (gud-up, gud-down), and run until current stack finish
-(gud-finish).
+*** Imenu support has been enhanced to locate tables, views, indexes,
+packages, procedures, functions, triggers, sequences, rules, and
+defaults.
 
-*** Supports new jdb (Java 1.2 and later) in addition to oldjdb
-(Java 1.1 jdb).
+*** Added SQL->Start SQLi Session menu entry which calls the
+appropriate `sql-interactive-mode' wrapper for the current setting of
+`sql-product'.
 
-*** The previous method of searching for source files has been
-preserved in case someone still wants/needs to use it.
-Set `gud-jdb-use-classpath' to nil.
+*** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
 
-*** Added Customization Variables
+** Fortran mode changes
 
-**** `gud-jdb-command-name'.   What command line to use to invoke jdb.
+*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
+It cannot deal with every code format, but ought to handle a sizeable
+majority.
 
-**** `gud-jdb-use-classpath'.  Allows selection of java source file searching
-method: set to t for new method, nil to scan `gud-jdb-directories' for
-java sources (previous method).
+*** F90 mode and Fortran mode have new navigation commands
+`f90-end-of-block', `f90-beginning-of-block', `f90-next-block',
+`f90-previous-block', `fortran-end-of-block',
+`fortran-beginning-of-block'.
 
-**** `gud-jdb-directories'.  List of directories to scan and search for Java
-classes using the original gud-jdb method (if `gud-jdb-use-classpath'
-is nil).
+*** Fortran mode does more font-locking by default.  Use level 3
+highlighting for the old default.
 
-*** Minor Improvements
+*** Fortran mode has a new variable `fortran-directive-re'.
+Adapt this to match the format of any compiler directives you use.
+Lines that match are never indented, and are given distinctive font-locking.
 
-**** The STARTTLS wrapper (starttls.el) can now use GNUTLS
-instead of the OpenSSL based `starttls' tool.  For backwards
-compatibility, it prefers `starttls', but you can toggle
-`starttls-use-gnutls' to switch to GNUTLS (or simply remove the
-`starttls' tool).
+*** The new function `f90-backslash-not-special' can be used to change
+the syntax of backslashes in F90 buffers.
 
-**** Do not allow debugger output history variable to grow without bounds.
+** Miscellaneous programming mode changes
 
-** Auto-Revert changes:
+*** In sh-script, a continuation line is only indented if the backslash was
+preceded by a SPC or a TAB.
 
-*** You can now use Auto Revert mode to `tail' a file.
+*** Perl mode has a new variable `perl-indent-continued-arguments'.
 
-If point is at the end of a file buffer before reverting, Auto Revert
-mode keeps it at the end after reverting.  Similarly if point is
-displayed at the end of a file buffer in any window, it stays at
-the end of the buffer in that window.  This allows to tail a file:
-just put point at the end of the buffer and it stays there.  This
-rule applies to file buffers.  For non-file buffers, the behavior can
-be mode dependent.
+*** The old Octave mode bindings C-c f and C-c i have been changed
+to C-c C-f and C-c C-i.  The C-c C-i subcommands now have duplicate
+bindings on control characters--thus, C-c C-i C-b is the same as
+C-c C-i b, and so on.
 
-If you are sure that the file will only change by growing at the end,
-then you can tail the file more efficiently by using the new minor
-mode Auto Revert Tail mode.  The function `auto-revert-tail-mode'
-toggles this mode.
+*** Prolog mode has a new variable `prolog-font-lock-keywords'
+to support use of font-lock.
 
-*** Auto Revert mode is now more careful to avoid excessive reverts and
-other potential problems when deciding which non-file buffers to
-revert.  This matters especially if Global Auto Revert mode is enabled
-and `global-auto-revert-non-file-buffers' is non-nil.  Auto Revert
-mode only reverts a non-file buffer if the buffer has a non-nil
-`revert-buffer-function' and a non-nil `buffer-stale-function', which
-decides whether the buffer should be reverted.  Currently, this means
-that auto reverting works for Dired buffers (although this may not
-work properly on all operating systems) and for the Buffer Menu.
+** VC Changes
 
-*** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
-Revert mode reliably updates version control info (such as the version
-control number in the mode line), in all version controlled buffers in
-which it is active.  If the option is nil, the default, then this info
-only gets updated whenever the buffer gets reverted.
+*** New backends for Subversion and Meta-CVS.
 
-** recentf changes.
+*** The new variable `vc-cvs-global-switches' specifies switches that
+are passed to any CVS command invoked by VC.
 
-The recent file list is now automatically cleaned up when recentf mode is
-enabled.  The new option `recentf-auto-cleanup' controls when to do
-automatic cleanup.
+These switches are used as "global options" for CVS, which means they
+are inserted before the command name.  For example, this allows you to
+specify a compression level using the `-z#' option for CVS.
 
-The ten most recent files can be quickly opened by using the shortcut
-keys 1 to 9, and 0, when the recent list is displayed in a buffer via
-the `recentf-open-files', or `recentf-open-more-files' commands.
+*** The key C-x C-q only changes the read-only state of the buffer
+(toggle-read-only).  It no longer checks files in or out.
 
-The `recentf-keep' option replaces `recentf-keep-non-readable-files-p'
-and provides a more general mechanism to customize which file names to
-keep in the recent list.
+We made this change because we held a poll and found that many users
+were unhappy with the previous behavior.  If you do prefer this
+behavior, you can bind `vc-toggle-read-only' to C-x C-q in your
+`.emacs' file:
 
-With the more advanced option `recentf-filename-handlers', you can
-specify functions that successively transform recent file names.  For
-example, if set to `file-truename' plus `abbreviate-file-name', the
-same file will not be in the recent list with different symbolic
-links, and the file name will be abbreviated.
+    (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
 
-To follow naming convention, `recentf-menu-append-commands-flag'
-replaces the misnamed option `recentf-menu-append-commands-p'.  The
-old name remains available as alias, but has been marked obsolete.
+The function `vc-toggle-read-only' will continue to exist.
 
-** Desktop package
+*** VC-Annotate mode enhancements
 
-*** Desktop saving is now a minor mode, `desktop-save-mode'.
+In VC-Annotate mode, you can now use the following key bindings for
+enhanced functionality to browse the annotations of past revisions, or
+to view diffs or log entries directly from vc-annotate-mode:
 
-*** The variable `desktop-enable' is obsolete.
+    P:  annotates the previous revision
+    N:  annotates the next revision
+    J:  annotates the revision at line
+    A:  annotates the revision previous to line
+    D:  shows the diff of the revision at line with its previous revision
+    L:  shows the log of the revision at line
+    W:  annotates the workfile (most up to date) version
 
-Customize `desktop-save-mode' to enable desktop saving.
+** pcl-cvs changes
 
-*** Buffers are saved in the desktop file in the same order as that in the
-buffer list.
+*** In pcl-cvs mode, there is a new `d y' command to view the diffs
+between the local version of the file and yesterday's head revision
+in the repository.
 
-*** The desktop package can be customized to restore only some buffers
-immediately, remaining buffers are restored lazily (when Emacs is
-idle).
+*** In pcl-cvs mode, there is a new `d r' command to view the changes
+anyone has committed to the repository since you last executed
+`checkout', `update' or `commit'.  That means using cvs diff options
+-rBASE -rHEAD.
 
-*** New commands:
-  - desktop-revert reverts to the last loaded desktop.
-  - desktop-change-dir kills current desktop and loads a new.
-  - desktop-save-in-desktop-dir saves desktop in the directory from which
-    it was loaded.
-  - desktop-lazy-complete runs the desktop load to completion.
-  - desktop-lazy-abort aborts lazy loading of the desktop.
+** Diff changes
 
-*** New customizable variables:
-  - desktop-save. Determines whether the desktop should be saved when it is
-    killed.
-  - desktop-file-name-format. Format in which desktop file names should be saved.
-  - desktop-path. List of directories in which to lookup the desktop file.
-  - desktop-locals-to-save. List of local variables to save.
-  - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
-  - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
-    should not delete.
-  - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
-    restored lazily (when Emacs is idle).
-  - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
-  - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
+*** M-x diff uses Diff mode instead of Compilation mode.
 
-*** New command line option --no-desktop
+*** Diff mode key bindings changed.
 
-*** New hooks:
-  - desktop-after-read-hook run after a desktop is loaded.
-  - desktop-no-desktop-file-hook run when no desktop file is found.
+These are the new bindings:
 
-** The saveplace.el package now filters out unreadable files.
+C-c C-e   diff-ediff-patch  (old M-A)
+C-c C-n   diff-restrict-view   (old M-r)
+C-c C-r   diff-reverse-direction  (old M-R)
+C-c C-u   diff-context->unified   (old M-U)
+C-c C-w   diff-refine-hunk  (old C-c C-r)
 
-When you exit Emacs, the saved positions in visited files no longer
-include files that aren't readable, e.g. files that don't exist.
-Customize the new option `save-place-forget-unreadable-files' to nil
-to get the old behavior.  The new options `save-place-save-skipped'
-and `save-place-skip-check-regexp' allow further fine-tuning of this
-feature.
+To convert unified to context format, use C-u C-c C-u.
+In addition, C-c C-u now operates on the region
+in Transient Mark mode when the mark is active.
 
 ** EDiff changes.
 
@@ -2828,143 +2979,86 @@ per line.  Lines beginning with space or tab are ignored.
 
 *** New language parsing features
 
-**** The `::' qualifier triggers C++ parsing in C file.
-
-Previously, only the `template' and `class' keywords had this effect.
-
-**** The GCC __attribute__ keyword is now recognized and ignored.
-
 **** New language HTML.
 
 Tags are generated for `title' as well as `h1', `h2', and `h3'.  Also,
 when `name=' is used inside an anchor and whenever `id=' is used.
 
-**** In Makefiles, constants are tagged.
-
-If you want the old behavior instead, thus avoiding to increase the
-size of the tags file, use the --no-globals option.
-
-**** New language Lua.
-
-All functions are tagged.
-
-**** In Perl, packages are tags.
-
-Subroutine tags are named from their package.  You can jump to sub tags
-as you did before, by the sub name, or additionally by looking for
-package::sub.
-
-**** In Prolog, etags creates tags for rules in addition to predicates.
-
 **** New language PHP.
 
 Functions, classes and defines are tags.  If the --members option is
 specified to etags, variables are tags also.
 
-**** New default keywords for TeX.
-
-The new keywords are def, newcommand, renewcommand, newenvironment and
-renewenvironment.
-
-**** In C and derived languages, etags creates tags for #undef
-
-*** Honor #line directives.
-
-When Etags parses an input file that contains C preprocessor's #line
-directives, it creates tags using the file name and line number
-specified in those directives.  This is useful when dealing with code
-created from Cweb source files.  When Etags tags the generated file, it
-writes tags pointing to the source file.
-
-*** New option --parse-stdin=FILE.
-
-This option is mostly useful when calling etags from programs.  It can
-be used (only once) in place of a file name on the command line.  Etags
-reads from standard input and marks the produced tags as belonging to
-the file FILE.
-
-*** The --members option is now the default.
-
-Use --no-members if you want the old default behaviour of not tagging
-struct members in C, members variables in C++ and variables in PHP.
-
-** Ctags changes.
+**** New language Lua.
 
-*** Ctags now allows duplicate tags
+All functions are tagged.
 
-** VC Changes
+**** The `::' qualifier triggers C++ parsing in C file.
 
-*** The key C-x C-q only changes the read-only state of the buffer
-(toggle-read-only).  It no longer checks files in or out.
+Previously, only the `template' and `class' keywords had this effect.
 
-We made this change because we held a poll and found that many users
-were unhappy with the previous behavior.  If you do prefer this
-behavior, you can bind `vc-toggle-read-only' to C-x C-q in your
-`.emacs' file:
+**** The GCC __attribute__ keyword is now recognized and ignored.
 
-    (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
+**** In C and derived languages, etags creates tags for #undef
 
-The function `vc-toggle-read-only' will continue to exist.
+**** In Makefiles, constants are tagged.
 
-*** The new variable `vc-cvs-global-switches' specifies switches that
-are passed to any CVS command invoked by VC.
+If you want the old behavior instead, thus avoiding to increase the
+size of the tags file, use the --no-globals option.
 
-These switches are used as "global options" for CVS, which means they
-are inserted before the command name.  For example, this allows you to
-specify a compression level using the `-z#' option for CVS.
+**** In Perl, packages are tags.
 
-*** New backends for Subversion and Meta-CVS.
+Subroutine tags are named from their package.  You can jump to sub tags
+as you did before, by the sub name, or additionally by looking for
+package::sub.
 
-*** VC-Annotate mode enhancements
+**** In Prolog, etags creates tags for rules in addition to predicates.
 
-In VC-Annotate mode, you can now use the following key bindings for
-enhanced functionality to browse the annotations of past revisions, or
-to view diffs or log entries directly from vc-annotate-mode:
+**** New default keywords for TeX.
 
-    P:  annotates the previous revision
-    N:  annotates the next revision
-    J:  annotates the revision at line
-    A:  annotates the revision previous to line
-    D:  shows the diff of the revision at line with its previous revision
-    L:  shows the log of the revision at line
-    W:  annotates the workfile (most up to date) version
+The new keywords are def, newcommand, renewcommand, newenvironment and
+renewenvironment.
 
-** pcl-cvs changes:
+*** Honor #line directives.
 
-*** In pcl-cvs mode, there is a new `d y' command to view the diffs
-between the local version of the file and yesterday's head revision
-in the repository.
+When Etags parses an input file that contains C preprocessor's #line
+directives, it creates tags using the file name and line number
+specified in those directives.  This is useful when dealing with code
+created from Cweb source files.  When Etags tags the generated file, it
+writes tags pointing to the source file.
 
-*** In pcl-cvs mode, there is a new `d r' command to view the changes
-anyone has committed to the repository since you last executed
-`checkout', `update' or `commit'.  That means using cvs diff options
--rBASE -rHEAD.
+*** New option --parse-stdin=FILE.
 
-** The new variable `mail-default-directory' specifies
-`default-directory' for mail buffers.  This directory is used for
-auto-save files of mail buffers.  It defaults to "~/".
+This option is mostly useful when calling etags from programs.  It can
+be used (only once) in place of a file name on the command line.  Etags
+reads from standard input and marks the produced tags as belonging to
+the file FILE.
 
-** The mode line can indicate new mail in a directory or file.
+*** The --members option is now the default.
 
-See the documentation of the user option
-`display-time-mail-directory'.
+Use --no-members if you want the old default behaviour of not tagging
+struct members in C, members variables in C++ and variables in PHP.
 
-** Rmail changes:
+** Ctags changes.
 
-*** Rmail now displays 5-digit message ids in its summary buffer.
+*** Ctags now allows duplicate tags
 
-*** The new commands rmail-end-of-message and rmail-summary end-of-message,
-by default bound to `/', go to the end of the current mail message in
-Rmail and Rmail summary buffers.
+** Rmail changes
 
 *** Support for `movemail' from GNU mailutils was added to Rmail.
 
-This version of `movemail' allows to read mail from a wide range of
+This version of `movemail' allows you to read mail from a wide range of
 mailbox formats, including remote POP3 and IMAP4 mailboxes with or
 without TLS encryption.  If GNU mailutils is installed on the system
 and its version of `movemail' can be found in exec-path, it will be
 used instead of the native one.
 
+*** The new commands rmail-end-of-message and rmail-summary end-of-message,
+by default bound to `/', go to the end of the current mail message in
+Rmail and Rmail summary buffers.
+
+*** Rmail now displays 5-digit message ids in its summary buffer.
+
 ** Gnus package
 
 *** Gnus now includes Sieve and PGG
@@ -2981,13 +3075,17 @@ See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
 Upgraded to MH-E version 8.0.3.  There have been major changes since
 version 5.0.2; see MH-E-NEWS for details.
 
-** Calendar changes:
+** Miscellaneous mail changes
 
-*** The meanings of C-x < and C-x > have been interchanged.
-< means to scroll backward in time, and > means to scroll forward.
+*** The new variable `mail-default-directory' specifies
+`default-directory' for mail buffers.  This directory is used for
+auto-save files of mail buffers.  It defaults to "~/".
 
-*** You can now use < and >, instead of C-x < and C-x >, to scroll
-the calendar left or right.
+*** The mode line can indicate new mail in a directory or file.
+
+See the documentation of the user option `display-time-mail-directory'.
+
+** Calendar changes
 
 *** There is a new calendar package, icalendar.el, that can be used to
 convert Emacs diary entries to/from the iCalendar format.
@@ -2995,6 +3093,21 @@ convert Emacs diary entries to/from the iCalendar format.
 *** The new package cal-html.el writes HTML files with calendar and
 diary entries.
 
+*** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
+and `diary-from-outlook-rmail' can be used to import diary entries
+from Outlook-format appointments in mail messages.  The variable
+`diary-outlook-formats' can be customized to recognize additional
+formats.
+
+*** The procedure for activating appointment reminders has changed:
+use the new function `appt-activate'.  The new variable
+`appt-display-format' controls how reminders are displayed, replacing
+`appt-issue-message', `appt-visible', and `appt-msg-window'.
+
+*** The function `simple-diary-display' now by default sets a header line.
+This can be controlled through the variables `diary-header-line-flag'
+and `diary-header-line-format'.
+
 *** Diary sexp entries can have custom marking in the calendar.
 Diary sexp functions which only apply to certain days (such as
 `diary-block' or `diary-cyclic') now take an optional parameter MARK,
@@ -3005,6 +3118,12 @@ day in the calendar.  Specifying a face highlights the day with that
 face.  This lets you have different colors or markings for vacations,
 appointments, paydays or anything else using a sexp.
 
+*** The meanings of C-x < and C-x > have been interchanged.
+< means to scroll backward in time, and > means to scroll forward.
+
+*** You can now use < and >, instead of C-x < and C-x >, to scroll
+the calendar left or right.
+
 *** The new function `calendar-goto-day-of-year' (g D) prompts for a
 year and day number, and moves to that date.  Negative day numbers
 count backward from the end of the year.
@@ -3013,37 +3132,19 @@ count backward from the end of the year.
 prompts for a year and a week number, and moves to the first
 day of that ISO week.
 
-*** The new variable `calendar-minimum-window-height' affects the
-window generated by the function `generate-calendar-window'.
-
 *** The functions `holiday-easter-etc' and `holiday-advent' now take
 optional arguments, in order to only report on the specified holiday
 rather than all.  This makes customization of variables such as
 `christian-holidays' simpler.
 
-*** The function `simple-diary-display' now by default sets a header line.
-This can be controlled through the variables `diary-header-line-flag'
-and `diary-header-line-format'.
-
-*** The procedure for activating appointment reminders has changed:
-use the new function `appt-activate'.  The new variable
-`appt-display-format' controls how reminders are displayed, replacing
-`appt-issue-message', `appt-visible', and `appt-msg-window'.
-
-*** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
-and `diary-from-outlook-rmail' can be used to import diary entries
-from Outlook-format appointments in mail messages.  The variable
-`diary-outlook-formats' can be customized to recognize additional
-formats.
+*** The new variable `calendar-minimum-window-height' affects the
+window generated by the function `generate-calendar-window'.
 
-** Speedbar changes:
+** Speedbar changes
 
 *** Speedbar items can now be selected by clicking mouse-1, based on
 the `mouse-1-click-follows-link' mechanism.
 
-*** SPC and DEL are no longer bound to scroll up/down in the speedbar
-keymap.
-
 *** The new command `speedbar-toggle-line-expansion', bound to SPC,
 contracts or expands the line under the cursor.
 
@@ -3054,6 +3155,9 @@ contracts or expands the line under the cursor.
 respectively, expand and contract the line under cursor with all of
 its descendents.
 
+*** The new user option `speedbar-use-tool-tips-flag', if non-nil,
+means to display tool-tips for speedbar items.
+
 *** The new user option `speedbar-query-confirmation-method' controls
 how querying is performed for file operations.  A value of 'always
 means to always query before file operations; 'none-but-delete means
@@ -3066,8 +3170,8 @@ value of 'attached means to use the attached frame (the frame that
 speedbar was started from.)  A number such as 1 or -1 means to pass
 that number to `other-frame'.
 
-*** The new user option `speedbar-use-tool-tips-flag', if non-nil,
-means to display tool-tips for speedbar items.
+*** SPC and DEL are no longer bound to scroll up/down in the speedbar
+keymap.
 
 *** The frame management code in speedbar.el has been split into a new
 `dframe' library.  Emacs Lisp code that makes use of the speedbar
@@ -3079,230 +3183,136 @@ should use `dframe-attached-frame' instead of
 `speedbar-update-speed' and `speedbar-navigating-speed' are also
 obsolete; use `dframe-update-speed' instead.
 
-** sql changes.
-
-*** The variable `sql-product' controls the highlighting of different
-SQL dialects.  This variable can be set globally via Customize, on a
-buffer-specific basis via local variable settings, or for the current
-session using the new SQL->Product submenu.  (This menu replaces the
-SQL->Highlighting submenu.)
-
-The following values are supported:
-
-    ansi       ANSI Standard (default)
-    db2                DB2
-    informix    Informix
-    ingres      Ingres
-    interbase  Interbase
-    linter     Linter
-    ms         Microsoft
-    mysql      MySQL
-    oracle     Oracle
-    postgres   Postgres
-    solid       Solid
-    sqlite      SQLite
-    sybase      Sybase
-
-The current product name will be shown on the mode line following the
-SQL mode indicator.
-
-The technique of setting `sql-mode-font-lock-defaults' directly in
-your `.emacs' will no longer establish the default highlighting -- Use
-`sql-product' to accomplish this.
-
-ANSI keywords are always highlighted.
-
-*** The function `sql-add-product-keywords' can be used to add
-font-lock rules to the product specific rules.  For example, to have
-all identifiers ending in `_t' under MS SQLServer treated as a type,
-you would use the following line in your .emacs file:
-
-  (sql-add-product-keywords 'ms
-             '(("\\<\\w+_t\\>" . font-lock-type-face)))
-
-*** Oracle support includes keyword highlighting for Oracle 9i.
-
-Most SQL and PL/SQL keywords are implemented.  SQL*Plus commands are
-highlighted in `font-lock-doc-face'.
-
-*** Microsoft SQLServer support has been significantly improved.
-
-Keyword highlighting for SqlServer 2000 is implemented.
-sql-interactive-mode defaults to use osql, rather than isql, because
-osql flushes its error stream more frequently.  Thus error messages
-are displayed when they occur rather than when the session is
-terminated.
-
-If the username and password are not provided to `sql-ms', osql is
-called with the `-E' command line argument to use the operating system
-credentials to authenticate the user.
+** battery.el changes
 
-*** Postgres support is enhanced.
-Keyword highlighting of Postgres 7.3 is implemented.  Prompting for
-the username and the pgsql `-U' option is added.
+*** display-battery-mode replaces display-battery.
 
-*** MySQL support is enhanced.
-Keyword highlighting of MySql 4.0 is implemented.
+*** battery.el now works on recent versions of OS X.
 
-*** Imenu support has been enhanced to locate tables, views, indexes,
-packages, procedures, functions, triggers, sequences, rules, and
-defaults.
+** Games
 
-*** Added SQL->Start SQLi Session menu entry which calls the
-appropriate `sql-interactive-mode' wrapper for the current setting of
-`sql-product'.
+*** The game `mpuz' is enhanced.
 
-*** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
+`mpuz' now allows the 2nd factor not to have two identical digits.  By
+default, all trivial operations involving whole lines are performed
+automatically.  The game uses faces for better visual feedback.
 
-** FFAP changes:
+** Obsolete and deleted packages
 
-*** New ffap commands and keybindings:
+*** fast-lock.el and lazy-lock.el are obsolete.  Use jit-lock.el instead.
 
-C-x C-r (`ffap-read-only'),
-C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
-C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
-C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
+*** iso-acc.el is now obsolete.  Use one of the latin input methods instead.
 
-*** FFAP accepts wildcards in a file name by default.
+*** zone-mode.el is now obsolete.  Use dns-mode.el instead.
 
-C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
-argument, which visits multiple files, and C-x d passes it to `dired'.
+*** cplus-md.el has been deleted.
 
-** Changes in Skeleton
+** Miscellaneous
 
-*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
+*** The variable `woman-topic-at-point' is renamed
+to `woman-use-topic-at-point' and behaves differently: if this
+variable is non-nil, the `woman' command uses the word at point
+automatically, without asking for a confirmation.  Otherwise, the word
+at point is suggested as default, but not inserted at the prompt.
 
-`@' has reverted to only setting `skeleton-positions' and no longer
-sets `skeleton-point'.  Skeletons which used @ to mark
-`skeleton-point' independent of `_' should now use `-' instead.  The
-updated `skeleton-insert' docstring explains these new features along
-with other details of skeleton construction.
+*** You can now customize `fill-nobreak-predicate' to control where
+filling can break lines.  The value is now normally a list of
+functions, but it can also be a single function, for compatibility.
 
-*** The variables `skeleton-transformation', `skeleton-filter', and
-`skeleton-pair-filter' have been renamed to
-`skeleton-transformation-function', `skeleton-filter-function', and
-`skeleton-pair-filter-function'.  The old names are still available
-as aliases.
+Emacs provide two predicates, `fill-single-word-nobreak-p' and
+`fill-french-nobreak-p', for use as the value of
+`fill-nobreak-predicate'.
 
-** Hideshow mode changes
+*** M-x view-file and commands that use it now avoid interfering
+with special modes such as Tar mode.
 
-*** New variable `hs-set-up-overlay' allows customization of the overlay
-used to effect hiding for hideshow minor mode.  Integration with isearch
-handles the overlay property `display' specially, preserving it during
-temporary overlay showing in the course of an isearch operation.
+*** `global-whitespace-mode' is a new alias for `whitespace-global-mode'.
 
-*** New variable `hs-allow-nesting' non-nil means that hiding a block does
-not discard the hidden state of any "internal" blocks; when the parent
-block is later shown, the internal blocks remain hidden.  Default is nil.
+*** The saveplace.el package now filters out unreadable files.
 
-** `hide-ifdef-mode' now uses overlays rather than selective-display
-to hide its text.  This should be mostly transparent but slightly
-changes the behavior of motion commands like C-e and C-p.
+When you exit Emacs, the saved positions in visited files no longer
+include files that aren't readable, e.g. files that don't exist.
+Customize the new option `save-place-forget-unreadable-files' to nil
+to get the old behavior.  The new options `save-place-save-skipped'
+and `save-place-skip-check-regexp' allow further fine-tuning of this
+feature.
 
-** `partial-completion-mode' now handles partial completion on directory names.
+*** Commands `winner-redo' and `winner-undo', from winner.el, are now
+bound to C-c <left> and C-c <right>, respectively.  This is an
+incompatible change.
 
-** The type-break package now allows `type-break-file-name' to be nil
+*** The type-break package now allows `type-break-file-name' to be nil
 and if so, doesn't store any data across sessions.  This is handy if
 you don't want the `.type-break' file in your home directory or are
 annoyed by the need for interaction when you kill Emacs.
 
-** `ps-print' can now print characters from the mule-unicode charsets.
+*** `ps-print' can now print characters from the mule-unicode charsets.
 
 Printing text with characters from the mule-unicode-* sets works with
 `ps-print', provided that you have installed the appropriate BDF
 fonts.  See the file INSTALL for URLs where you can find these fonts.
 
-** New command `strokes-global-set-stroke-string'.
+*** New command `strokes-global-set-stroke-string'.
 This is like `strokes-global-set-stroke', but it allows you to bind
 the stroke directly to a string to insert.  This is convenient for
 using strokes as an input method.
 
-** Emacs server changes:
-
-*** You can have several Emacs servers on the same machine.
+*** In Outline mode, `hide-body' no longer hides lines at the top
+of the file that precede the first header line.
 
-       % emacs --eval '(setq server-name "foo")' -f server-start &
-       % emacs --eval '(setq server-name "bar")' -f server-start &
-       % emacsclient -s foo file1
-       % emacsclient -s bar file2
+*** `hide-ifdef-mode' now uses overlays rather than selective-display
+to hide its text.  This should be mostly transparent but slightly
+changes the behavior of motion commands like C-e and C-p.
 
-*** The `emacsclient' command understands the options `--eval' and
-`--display' which tell Emacs respectively to evaluate the given Lisp
-expression and to use the given display when visiting files.
+*** In Artist mode the variable `artist-text-renderer' has been
+renamed to `artist-text-renderer-function'.  The old name is still
+available as alias.
 
-*** User option `server-mode' can be used to start a server process.
+*** In Enriched mode, `set-left-margin' and `set-right-margin' are now
+by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
+and `C-c C-r'.
 
-** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
+*** `partial-completion-mode' now handles partial completion on directory names.
 
-** You can now disable pc-selection-mode after enabling it.
+*** You can now disable pc-selection-mode after enabling it.
 
 M-x pc-selection-mode behaves like a proper minor mode, and with no
 argument it toggles the mode.  Turning off PC-Selection mode restores
 the global key bindings that were replaced by turning on the mode.
 
-** `uniquify-strip-common-suffix' tells uniquify to prefer
+*** `uniquify-strip-common-suffix' tells uniquify to prefer
 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
 
-** Support for `magic cookie' standout modes has been removed.
-
-Emacs still works on terminals that require magic cookies in order to
-use standout mode, but they can no longer display mode-lines in
-inverse-video.
-
-** The game `mpuz' is enhanced.
+*** New user option `add-log-always-start-new-record'.
 
-`mpuz' now allows the 2nd factor not to have two identical digits.  By
-default, all trivial operations involving whole lines are performed
-automatically.  The game uses faces for better visual feedback.
+When this option is enabled, M-x add-change-log-entry always
+starts a new record regardless of when the last record is.
 
-** battery.el changes:
+*** M-x compare-windows now can automatically skip non-matching text to
+resync points in both windows.
 
-*** display-battery-mode replaces display-battery.
+*** PO translation files are decoded according to their MIME headers
+when Emacs visits them.
 
-*** battery.el now works on recent versions of OS X.
+*** Telnet now prompts you for a port number with C-u M-x telnet.
 
-** calculator.el now has radix grouping mode.
+*** calculator.el now has radix grouping mode.
 
 To enable this, set `calculator-output-radix' non-nil.  In this mode a
 separator character is used every few digits, making it easier to see
 byte boundaries etc.  For more info, see the documentation of the
 variable `calculator-radix-grouping-mode'.
 
-** fast-lock.el and lazy-lock.el are obsolete.  Use jit-lock.el instead.
-
-** iso-acc.el is now obsolete.  Use one of the latin input methods instead.
-
-** zone-mode.el is now obsolete.  Use dns-mode.el instead.
-
-** cplus-md.el has been deleted.
-
-** Ewoc changes
-
-*** The new function `ewoc-delete' deletes specified nodes.
-
-*** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
-a newline after each pretty-printed entry and after the header and footer.
-This allows you to create multiple-entry ewocs on a single line and to
-effect "invisible" nodes by arranging for the pretty-printer to not print
-anything for those nodes.
-
-For example, these two sequences of expressions behave identically:
-
-;; NOSEP nil
-(defun PP (data) (insert (format "%S" data)))
-(ewoc-create 'PP "start\n")
+*** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
 
-;; NOSEP t
-(defun PP (data) (insert (format "%S\n" data)))
-(ewoc-create 'PP "start\n\n" "\n" t)
+*** The terminal emulation code in term.el has been improved; it can
+run most curses applications now.
 
-** Locate changes
+*** Support for `magic cookie' standout modes has been removed.
 
-*** By default, reverting the *Locate* buffer now just runs the last
-`locate' command back over again without offering to update the locate
-database (which normally only works if you have root privileges).  If
-you prefer the old behavior, set the new customizable option
-`locate-update-when-revert' to t.
+Emacs still works on terminals that require magic cookies in order to
+use standout mode, but they can no longer display mode-lines in
+inverse-video.
 
 \f
 * Changes in Emacs 22.1 on non-free operating systems
@@ -3321,29 +3331,6 @@ This change means that users can now have their own `.emacs' files on
 shared computers, and the default HOME directory is less likely to be
 read-only on computers that are administered by someone else.
 
-** Passing resources on the command line now works on MS Windows.
-
-You can use --xrm to pass resource settings to Emacs, overriding any
-existing values.  For example:
-
-  emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20"
-
-will start up Emacs on an initial frame of 100x20 with red background,
-irrespective of geometry or background setting on the Windows registry.
-
-** On MS Windows, the "system caret" now follows the cursor.
-
-This enables Emacs to work better with programs that need to track the
-cursor, for example screen magnifiers and text to speech programs.
-When such a program is in use, the system caret is made visible
-instead of Emacs drawing its own cursor. This seems to be required by
-some programs. The new variable w32-use-visible-system-caret allows
-the caret visibility to be manually toggled.
-
-** Tooltips now work on MS Windows.
-
-See the Emacs 21.1 NEWS entry for tooltips for details.
-
 ** Images are now supported on MS Windows.
 
 PBM and XBM images are supported out of the box.  Other image formats
@@ -3360,9 +3347,9 @@ as AU, AIFF and MP3 may be supported in the more recent versions of
 Windows, or when other software provides hooks into the system level
 sound support for those formats.
 
-** Different shaped mouse pointers are supported on MS Windows.
+** Tooltips now work on MS Windows.
 
-The mouse pointer changes shape depending on what is under the pointer.
+See the Emacs 21.1 NEWS entry for tooltips for details.
 
 ** Pointing devices with more than 3 buttons are now supported on MS Windows.
 
@@ -3370,6 +3357,16 @@ The new variable `w32-pass-extra-mouse-buttons-to-system' controls
 whether Emacs should handle the extra buttons itself (the default), or
 pass them to Windows to be handled with system-wide functions.
 
+** Passing resources on the command line now works on MS Windows.
+
+You can use --xrm to pass resource settings to Emacs, overriding any
+existing values.  For example:
+
+  emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20"
+
+will start up Emacs on an initial frame of 100x20 with red background,
+irrespective of geometry or background setting on the Windows registry.
+
 ** Emacs takes note of colors defined in Control Panel on MS-Windows.
 
 The Control Panel defines some default colors for applications in much
@@ -3380,14 +3377,6 @@ some of them to initialize some of the default faces.
 `list-colors-display' shows the list of System color names, in case
 you wish to use them in other faces.
 
-** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
-
-Those systems use Unicode internally, so this allows Emacs to share
-multilingual text with other applications.  On other versions of
-MS Windows, Emacs now uses the appropriate locale coding-system, so
-the clipboard should work correctly for your local language without
-any customizations.
-
 ** Running in a console window in Windows now uses the console size.
 
 Previous versions of Emacs erred on the side of having a usable Emacs
@@ -3401,6 +3390,27 @@ defaults to 80x25.  If you use such a telnet server regularly at a size
 other than 80x25, you can still manually set
 w32-use-full-screen-buffer to t.
 
+** Different shaped mouse pointers are supported on MS Windows.
+
+The mouse pointer changes shape depending on what is under the pointer.
+
+** On MS Windows, the "system caret" now follows the cursor.
+
+This enables Emacs to work better with programs that need to track the
+cursor, for example screen magnifiers and text to speech programs.
+When such a program is in use, the system caret is made visible
+instead of Emacs drawing its own cursor. This seems to be required by
+some programs. The new variable w32-use-visible-system-caret allows
+the caret visibility to be manually toggled.
+
+** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
+
+Those systems use Unicode internally, so this allows Emacs to share
+multilingual text with other applications.  On other versions of
+MS Windows, Emacs now uses the appropriate locale coding-system, so
+the clipboard should work correctly for your local language without
+any customizations.
+
 ** On Mac OS, `keyboard-coding-system' changes based on the keyboard script.
 
 ** The variable `mac-keyboard-text-encoding' and the constants
@@ -3412,22 +3422,6 @@ w32-use-full-screen-buffer to t.
 \f
 * Incompatible Lisp Changes in Emacs 22.1
 
-** The `read-file-name' function now returns a null string if the
-user just types RET.
-
-** The function find-operation-coding-system may be called with a cons
-(FILENAME . BUFFER) in the second argument if the first argument
-OPERATION is `insert-file-contents', and thus a function registered in
-`file-coding-system-alist' is also called with such an argument.
-
-** The variables post-command-idle-hook and post-command-idle-delay have
-been removed.  Use run-with-idle-timer instead.
-
-** `suppress-keymap' now works by remapping `self-insert-command' to
-the command `undefined'.  (In earlier Emacs versions, it used
-`substitute-key-definition' to rebind self inserting characters to
-`undefined'.)
-
 ** Mode line display ignores text properties as well as the
 :propertize and :eval forms in the value of a variable whose
 `risky-local-variable' property is nil.
@@ -3440,14 +3434,11 @@ Callers sending input not from the user should use bind the 3rd
 argument `artificial' to a non-nil value, to prevent Emacs from
 deleting the part of subprocess output that matches the input.
 
-** Support for Mocklisp has been removed.
-
-** The variable `memory-full' now remains t until
-there is no longer a shortage of memory.
+** The `read-file-name' function now returns a null string if the
+user just types RET.
 
-** When Emacs receives a USR1 or USR2 signal, this generates
-input events: sigusr1 or sigusr2.  Use special-event-map to
-handle these events.
+** The variables post-command-idle-hook and post-command-idle-delay have
+been removed.  Use run-with-idle-timer instead.
 
 ** A hex or octal escape in a string constant forces the string to
 be multibyte or unibyte, respectively.
@@ -3460,22 +3451,76 @@ Instead, the new functions `make-glyph-code', `glyph-char', and
 `glyph-face' must be used to create and decode glyph codes in
 display tables.
 
+** `suppress-keymap' now works by remapping `self-insert-command' to
+the command `undefined'.  (In earlier Emacs versions, it used
+`substitute-key-definition' to rebind self inserting characters to
+`undefined'.)
+
+** The third argument of `accept-process-output' is now milliseconds.
+It used to be microseconds.
+
+** The function find-operation-coding-system may be called with a cons
+(FILENAME . BUFFER) in the second argument if the first argument
+OPERATION is `insert-file-contents', and thus a function registered in
+`file-coding-system-alist' is also called with such an argument.
+
+** When Emacs receives a USR1 or USR2 signal, this generates
+input events: sigusr1 or sigusr2.  Use special-event-map to
+handle these events.
+
+** The variable `memory-full' now remains t until
+there is no longer a shortage of memory.
+
+** Support for Mocklisp has been removed.
+
 \f
 * Lisp Changes in Emacs 22.1
 
 ** General Lisp changes:
 
-*** The function `expt' handles negative exponents differently.
-The value for `(expt A B)', if both A and B are integers and B is
-negative, is now a float.  For example: (expt 2 -2) => 0.25.
+*** New syntax: \s now stands for the SPACE character.
+
+`?\s' is a new way to write the space character.  You must make sure
+it is not followed by a dash, since `?\s-...' indicates the "super"
+modifier.  However, it would be strange to write a character constant
+and a following symbol (beginning with `-') with no space between
+them.
+
+`\s' stands for space in strings, too, but it is not really meant for
+strings; it is easier and nicer just to write a space.
+
+*** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex.
+
+For instance, you can use "\u0428" to specify a string consisting of
+CYRILLIC CAPITAL LETTER SHA, or `"U0001D6E2" to specify one consisting
+of MATHEMATICAL ITALIC CAPITAL ALPHA (the latter is greater than
+#xFFFF and thus needs the longer syntax).
+
+This syntax works for both character constants and strings.
+
+*** New function `unsafep' determines whether a Lisp form is safe.
+
+It returns nil if the given Lisp form can't possibly do anything
+dangerous; otherwise it returns a reason why the form might be unsafe
+(calls unknown function, alters global variable, etc.).
 
 *** The function `eql' is now available without requiring the CL package.
 
 *** The new function `memql' is like `memq', but uses `eql' for comparison,
 that is, floats are compared by value and other elements with `eq'.
 
+*** New functions `string-or-null-p' and `booleanp'.
+
+`string-or-null-p' returns non-nil iff OBJECT is a string or nil.
+`booleanp' returns non-nil iff OBJECT is t or nil.
+
 *** `makehash' is now obsolete.  Use `make-hash-table' instead.
 
+*** Minor change in the function `format'.
+
+Some flags that were accepted but not implemented (such as "*") are no
+longer accepted.
+
 *** `add-to-list' takes an optional third argument, APPEND.
 
 If APPEND is non-nil, the new element gets added at the end of the
@@ -3485,6 +3530,14 @@ Emacs 21.1, but was not documented then.
 *** New function `add-to-ordered-list' is like `add-to-list' but
 associates a numeric ordering of each element added to the list.
 
+*** New function `add-to-history' adds an element to a history list.
+
+Lisp packages should use this function to add elements to their
+history lists.
+
+If `history-delete-duplicates' is non-nil, it removes duplicates of
+the new element from the history list it updates.
+
 *** New function `copy-tree' makes a copy of a tree.
 
 It recursively copies through both CARs and CDRs.
@@ -3495,35 +3548,11 @@ It modifies the list destructively, like `delete'.  Of several `equal'
 occurrences of an element in the list, the one that's kept is the
 first one.
 
-*** New function `add-to-history' adds an element to a history list.
-
-Lisp packages should use this function to add elements to their
-history lists.
-
-If `history-delete-duplicates' is non-nil, it removes duplicates of
-the new element from the history list it updates.
-
 *** New function `rassq-delete-all'.
 
 (rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose
 CDR is `eq' to the specified value.
 
-*** The function `number-sequence' makes a list of equally-separated numbers.
-
-For instance, (number-sequence 4 9) returns (4 5 6 7 8 9).  By
-default, the separation is 1, but you can specify a different
-separation as the third argument.  (number-sequence 1.5 6 2) returns
-(1.5 3.5 5.5).
-
-*** New variables `most-positive-fixnum' and `most-negative-fixnum'.
-
-They hold the largest and smallest possible integer values.
-
-*** Minor change in the function `format'.
-
-Some flags that were accepted but not implemented (such as "*") are no
-longer accepted.
-
 *** Functions `get' and `plist-get' no longer give errors for bad plists.
 
 They return nil for a malformed property list or if the list is
@@ -3534,20 +3563,20 @@ cyclic.
 They are like `plist-get' and `plist-put', except that they compare
 the property name using `equal' rather than `eq'.
 
-*** New variable `print-continuous-numbering'.
+*** The function `number-sequence' makes a list of equally-separated numbers.
 
-When this is non-nil, successive calls to print functions use a single
-numbering scheme for circular structure references.  This is only
-relevant when `print-circle' is non-nil.
+For instance, (number-sequence 4 9) returns (4 5 6 7 8 9).  By
+default, the separation is 1, but you can specify a different
+separation as the third argument.  (number-sequence 1.5 6 2) returns
+(1.5 3.5 5.5).
 
-When you bind `print-continuous-numbering' to t, you should
-also bind `print-number-table' to nil.
+*** New variables `most-positive-fixnum' and `most-negative-fixnum'.
 
-*** New function `macroexpand-all' expands all macros in a form.
+They hold the largest and smallest possible integer values.
 
-It is similar to the Common-Lisp function of the same name.
-One difference is that it guarantees to return the original argument
-if no expansion is done, which can be tested using `eq'.
+*** The function `expt' handles negative exponents differently.
+The value for `(expt A B)', if both A and B are integers and B is
+negative, is now a float.  For example: (expt 2 -2) => 0.25.
 
 *** The function `atan' now accepts an optional second argument.
 
@@ -3555,12 +3584,10 @@ When called with 2 arguments, as in `(atan Y X)', `atan' returns the
 angle in radians between the vector [X, Y] and the X axis.  (This is
 equivalent to the standard C library function `atan2'.)
 
-*** A function or macro's doc string can now specify the calling pattern.
+*** New macro `with-case-table'
 
-You put this info in the doc string's last line.  It should be
-formatted so as to match the regexp "\n\n(fn .*)\\'".  If you don't
-specify this explicitly, Emacs determines it from the actual argument
-names.  Usually that default is right, but not always.
+This executes the body with the case table temporarily set to a given
+case table.
 
 *** New macro `with-local-quit' temporarily allows quitting.
 
@@ -3569,22 +3596,11 @@ A quit inside the body of `with-local-quit' is caught by the
 the code that has inhibited quitting exits.
 
 This is for use around potentially blocking or long-running code
-inside timer functions and `post-command-hook' functions.
-
-*** New macro `define-obsolete-function-alias'.
-
-This combines `defalias' and `make-obsolete'.
-
-*** New macro `with-case-table'
-
-This executes the body with the case table temporarily set to a given
-case table.
+inside timer functions and `post-command-hook' functions.
 
-*** New function `unsafep' determines whether a Lisp form is safe.
+*** New macro `define-obsolete-function-alias'.
 
-It returns nil if the given Lisp form can't possibly do anything
-dangerous; otherwise it returns a reason why the form might be unsafe
-(calls unknown function, alters global variable, etc.).
+This combines `defalias' and `make-obsolete'.
 
 *** New macro `eval-at-startup' specifies expressions to
 evaluate when Emacs starts up.  If this is done after startup,
@@ -3592,14 +3608,31 @@ it evaluates those expressions immediately.
 
 This is useful in packages that can be preloaded.
 
-*** `list-faces-display' takes an optional argument, REGEXP.
+*** New function `macroexpand-all' expands all macros in a form.
 
-If it is non-nil, the function lists only faces matching this regexp.
+It is similar to the Common-Lisp function of the same name.
+One difference is that it guarantees to return the original argument
+if no expansion is done, which can be tested using `eq'.
 
-*** New functions `string-or-null-p' and `booleanp'.
+*** A function or macro's doc string can now specify the calling pattern.
 
-`string-or-null-p' returns non-nil iff OBJECT is a string or nil.
-`booleanp' returns non-nil iff OBJECT is t or nil.
+You put this info in the doc string's last line.  It should be
+formatted so as to match the regexp "\n\n(fn .*)\\'".  If you don't
+specify this explicitly, Emacs determines it from the actual argument
+names.  Usually that default is right, but not always.
+
+*** New variable `print-continuous-numbering'.
+
+When this is non-nil, successive calls to print functions use a single
+numbering scheme for circular structure references.  This is only
+relevant when `print-circle' is non-nil.
+
+When you bind `print-continuous-numbering' to t, you should
+also bind `print-number-table' to nil.
+
+*** `list-faces-display' takes an optional argument, REGEXP.
+
+If it is non-nil, the function lists only faces matching this regexp.
 
 *** New hook `command-error-function'.
 
@@ -3651,6 +3684,9 @@ changes the value of BASE-VAR.
 DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has
 the same documentation as BASE-VAR.
 
+*** The macro `define-obsolete-variable-alias' combines `defvaralias' and
+`make-obsolete-variable'.
+
 *** New function: indirect-variable VARIABLE
 
 This function returns the variable at the end of the chain of aliases
@@ -3660,9 +3696,6 @@ defined as an alias, the function returns VARIABLE.
 It might be noteworthy that variables aliases work for all kinds of
 variables, including buffer-local and frame-local variables.
 
-*** The macro `define-obsolete-variable-alias' combines `defvaralias' and
-`make-obsolete-variable'.
-
 ** defcustom changes:
 
 *** The package-version keyword has been added to provide
@@ -3674,37 +3707,25 @@ variable `customize-package-emacs-version-alist'.
 
 ** String changes:
 
-*** The escape sequence \s is now interpreted as a SPACE character.
-
-Exception: In a character constant, if it is followed by a `-' in a
-character constant (e.g. ?\s-A), it is still interpreted as the super
-modifier.  In strings, \s is always interpreted as a space.
-
 *** A hex escape in a string constant forces the string to be multibyte.
 
 *** An octal escape in a string constant forces the string to be unibyte.
 
+*** New function `string-to-multibyte' converts a unibyte string to a
+multibyte string with the same individual character codes.
+
 *** `split-string' now includes null substrings in the returned list if
 the optional argument SEPARATORS is non-nil and there are matches for
 SEPARATORS at the beginning or end of the string.  If SEPARATORS is
 nil, or if the new optional third argument OMIT-NULLS is non-nil, all
 empty matches are omitted from the returned list.
 
-*** New function `string-to-multibyte' converts a unibyte string to a
-multibyte string with the same individual character codes.
-
-*** New function `substring-no-properties' returns a substring without
-text properties.
-
 *** The new function `assoc-string' replaces `assoc-ignore-case' and
 `assoc-ignore-representation', which are still available, but have
 been declared obsolete.
 
-*** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex.
-Use "\u0428" to specify a string consisting of CYRILLIC CAPITAL LETTER SHA,
-or "\U0001D6E2" to specify one consisting of MATHEMATICAL ITALIC CAPITAL
-ALPHA (the latter is greater than #xFFFF and thus needs the longer
-syntax).  Also available for characters.
+*** New function `substring-no-properties' returns a substring without
+text properties.
 
 ** Displaying warnings to the user.
 
@@ -3742,32 +3763,32 @@ It defaults to 1.
 
 It defaults to 1.
 
-*** New function `mouse-on-link-p' tests if a position is in a clickable link.
+*** `field-beginning' and `field-end' take new optional argument, LIMIT.
 
-This is the function used by the new `mouse-1-click-follows-link'
-functionality.
+This argument tells them not to search beyond LIMIT.  Instead they
+give up and return LIMIT.
+
+*** New function `window-line-height' is an efficient way to get
+information about a specific text line in a window provided that the
+window's display is up-to-date.
 
 *** New function `line-number-at-pos' returns the line number of a position.
 
 It an optional buffer position argument that defaults to point.
 
-*** `field-beginning' and `field-end' take new optional argument, LIMIT.
-
-This argument tells them not to search beyond LIMIT.  Instead they
-give up and return LIMIT.
-
 *** Function `pos-visible-in-window-p' now returns the pixel coordinates
 and partial visibility state of the corresponding row, if the PARTIALLY
 arg is non-nil.
 
-*** New function `window-line-height' is an efficient way to get
-information about a specific text line in a window provided that the
-window's display is up-to-date.
-
 *** New functions `posn-at-point' and `posn-at-x-y' return
 click-event-style position information for a given visible buffer
 position or for a given window pixel coordinate.
 
+*** New function `mouse-on-link-p' tests if a position is in a clickable link.
+
+This is the function used by the new `mouse-1-click-follows-link'
+functionality.
+
 ** Text modification:
 
 *** The new function `buffer-chars-modified-tick' returns a buffer's
@@ -3879,17 +3900,17 @@ finished.
 
 ** Buffer-related changes:
 
+*** The new function `buffer-local-value' returns the buffer-local
+binding of VARIABLE (a symbol) in buffer BUFFER.  If VARIABLE does not
+have a buffer-local binding in buffer BUFFER, it returns the default
+value of VARIABLE instead.
+
 *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
 
 If it is non-nil, it specifies which buffers to list.
 
 *** `kill-buffer-hook' is now a permanent local.
 
-*** The new function `buffer-local-value' returns the buffer-local
-binding of VARIABLE (a symbol) in buffer BUFFER.  If VARIABLE does not
-have a buffer-local binding in buffer BUFFER, it returns the default
-value of VARIABLE instead.
-
 *** The function `frame-or-buffer-changed-p' now lets you maintain
 various status records in parallel.
 
@@ -3934,8 +3955,6 @@ These match the beginning and end of a symbol.  A symbol is a
 non-empty sequence of either word or symbol constituent characters, as
 specified by the syntax table.
 
-*** rx.el has new corresponding `symbol-start' and `symbol-end' elements.
-
 *** `skip-chars-forward' and `skip-chars-backward' now handle
 character classes such as `[:alpha:]', along with individual
 characters and ranges.
@@ -3951,6 +3970,8 @@ accepts such a list for restoring the match state.
 argument `reseat'.  When non-nil, all markers in the match data list
 passed to these functions will be reseated to point to nowhere.
 
+*** rx.el has new corresponding `symbol-start' and `symbol-end' elements.
+
 *** The default value of `sentence-end' is now defined using the new
 variable `sentence-end-without-space', which contains such characters
 that end a sentence without following spaces.
@@ -3977,7 +3998,9 @@ range BEG...END and increased the buffer size by DELTA.
 `undo-outer-limit', garbage collection empties it.  This is to prevent
 it from using up the available memory and choking Emacs.
 
-** New `yank-handler' text property can be used to control how
+** Killing and yanking changes:
+
+*** New `yank-handler' text property can be used to control how
 previously killed text on the kill ring is reinserted.
 
 The value of the `yank-handler' property must be a list with one to four
@@ -4021,7 +4044,8 @@ string.  The old behavior is available if you call
 
 ** Syntax table changes:
 
-*** The macro `with-syntax-table' no longer copies the syntax table.
+*** The new function `syntax-ppss' provides an efficient way to find the
+current syntactic context at point.
 
 *** The new function `syntax-after' returns the syntax code
 of the character after a specified buffer position, taking account
@@ -4030,58 +4054,53 @@ of text properties as well as the character code.
 *** `syntax-class' extracts the class of a syntax code (as returned
 by `syntax-after').
 
-*** The new function `syntax-ppss' provides an efficient way to find the
-current syntactic context at point.
+*** The macro `with-syntax-table' no longer copies the syntax table.
 
 ** File operation changes:
 
 *** New vars `exec-suffixes' and `load-suffixes' used when
 searching for an executable or an Emacs Lisp file.
 
-*** The new primitive `set-file-times' sets a file's access and
-modification times.  Magic file name handlers can handle this
-operation.
+*** New function `locate-file' searches for a file in a list of directories.
+`locate-file' accepts a name of a file to search (a string), and two
+lists: a list of directories to search in and a list of suffixes to
+try; typical usage might use `exec-path' and `load-path' for the list
+of directories, and `exec-suffixes' and `load-suffixes' for the list
+of suffixes.  The function also accepts a predicate argument to
+further filter candidate files.
+
+One advantage of using this function is that the list of suffixes in
+`exec-suffixes' is OS-dependant, so this function will find
+executables without polluting Lisp code with OS dependencies.
 
 *** The new function `file-remote-p' tests a file name and returns
 non-nil if it specifies a remote file (one that Emacs accesses using
 its own special methods and not directly through the file system).
 The value in that case is an identifier for the remote file system.
 
-*** `buffer-auto-save-file-format' is the new name for what was
-formerly called `auto-save-file-format'.  It is now a permanent local.
-
-*** Functions `file-name-sans-extension' and `file-name-extension' now
-ignore the leading dots in file names, so that file names such as
-`.emacs' are treated as extensionless.
-
-*** `visited-file-modtime' and `calendar-time-from-absolute' now return
-a list of two integers, instead of a cons.
+*** The new hook `before-save-hook' is invoked by `basic-save-buffer'
+before saving buffers.  This allows packages to perform various final
+tasks.  For example, it can be used by the copyright package to make
+sure saved files have the current year in any copyright headers.
 
 *** `file-chase-links' now takes an optional second argument LIMIT which
 specifies the maximum number of links to chase through.  If after that
 many iterations the file name obtained is still a symbolic link,
 `file-chase-links' returns it anyway.
 
-*** The new hook `before-save-hook' is invoked by `basic-save-buffer'
-before saving buffers.  This allows packages to perform various final
-tasks.  For example, it can be used by the copyright package to make
-sure saved files have the current year in any copyright headers.
+*** Functions `file-name-sans-extension' and `file-name-extension' now
+ignore the leading dots in file names, so that file names such as
+`.emacs' are treated as extensionless.
 
 *** If `buffer-save-without-query' is non-nil in some buffer,
 `save-some-buffers' will always save that buffer without asking (if
 it's modified).
 
-*** New function `locate-file' searches for a file in a list of directories.
-`locate-file' accepts a name of a file to search (a string), and two
-lists: a list of directories to search in and a list of suffixes to
-try; typical usage might use `exec-path' and `load-path' for the list
-of directories, and `exec-suffixes' and `load-suffixes' for the list
-of suffixes.  The function also accepts a predicate argument to
-further filter candidate files.
+*** `buffer-auto-save-file-format' is the new name for what was
+formerly called `auto-save-file-format'.  It is now a permanent local.
 
-One advantage of using this function is that the list of suffixes in
-`exec-suffixes' is OS-dependant, so this function will find
-executables without polluting Lisp code with OS dependencies.
+*** `visited-file-modtime' and `calendar-time-from-absolute' now return
+a list of two integers, instead of a cons.
 
 *** The precedence of file name handlers has been changed.
 
@@ -4107,8 +4126,16 @@ name handlers.  This will be exploited for remote files mainly.
 *** The function `file-name-completion' accepts an optional argument
 PREDICATE, and rejects completion candidates that don't satisfy PREDICATE.
 
+*** The new primitive `set-file-times' sets a file's access and
+modification times.  Magic file name handlers can handle this
+operation.
+
 ** Input changes:
 
+*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
+display a prompt but don't use the minibuffer, now display the prompt
+using the text properties (esp. the face) of the prompt string.
+
 *** The functions `read-event', `read-char', and `read-char-exclusive'
 have a new optional argument SECONDS.  If non-nil, this specifies a
 maximum time to wait for input, in seconds.  If no input arrives after
@@ -4122,10 +4149,6 @@ previous `k' or `K' argument was a down-event; otherwise nil is used.
 much like `F', but if the input is a directory name (even defaulted),
 it returns just the directory name.
 
-*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
-display a prompt but don't use the minibuffer, now display the prompt
-using the text properties (esp. the face) of the prompt string.
-
 *** (while-no-input BODY...) runs BODY, but only so long as no input
 arrives.  If the user types or clicks anything, BODY stops as if a
 quit had occurred.  `while-no-input' returns the value of BODY, if BODY
@@ -4202,16 +4225,20 @@ If completion is requested in the minibuffer, FUN will be called in the buffer
 from which the minibuffer was entered.  The return value of
 `lazy-completion-table' must be used to initialize the value of VAR.
 
-** Enhancements to keymaps.
+** Abbrev changes:
 
-*** New keymaps for typing file names
+*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG.
 
-Two new keymaps, `minibuffer-local-filename-completion-map'  and
-`minibuffer-local-must-match-filename-map', apply whenever
-Emacs reads a file name in the minibuffer.  These key maps override
-the usual binding of SPC to `minibuffer-complete-word' (so that file
-names with embedded spaces could be typed without the need to quote
-the spaces).
+If non-nil, this marks the abbrev as a "system" abbrev, which means
+that it won't be stored in the user's abbrevs file if he saves the
+abbrevs.  Major modes that predefine some abbrevs should always
+specify this flag.
+
+*** The new function `copy-abbrev-table' copies an abbrev table.
+
+It returns a new abbrev table that is a copy of a given abbrev table.
+
+** Enhancements to keymaps.
 
 *** Cleaner way to enter key sequences.
 
@@ -4278,6 +4305,26 @@ The following changes have been made to provide command remapping:
   command before remapping.  It is equal to `this-command' when the
   command was not remapped.
 
+*** The definition of a key-binding passed to define-key can use XEmacs-style
+key-sequences, such as [(control a)].
+
+*** New keymaps for typing file names
+
+Two new keymaps, `minibuffer-local-filename-completion-map'  and
+`minibuffer-local-must-match-filename-map', apply whenever
+Emacs reads a file name in the minibuffer.  These key maps override
+the usual binding of SPC to `minibuffer-complete-word' (so that file
+names with embedded spaces could be typed without the need to quote
+the spaces).
+
+*** New function `current-active-maps' returns a list of currently
+active keymaps.
+
+*** New function `describe-buffer-bindings' inserts the list of all
+defined keys and their definitions.
+
+*** New function `keymap-prompt' returns the prompt string of a keymap.
+
 *** If text has a `keymap' property, that keymap takes precedence
 over minor mode keymaps.
 
@@ -4291,21 +4338,8 @@ sequence is started with a mouse event.  Instead of letting the click
 position be determined from the key sequence itself, it is also
 possible to specify it with an optional argument explicitly.
 
-*** Dense keymaps now handle inheritance correctly.
-
-Previously a dense keymap would hide all of the simple-char key
-bindings of the parent keymap.
-
 *** `define-key-after' now accepts keys longer than 1.
 
-*** New function `current-active-maps' returns a list of currently
-active keymaps.
-
-*** New function `describe-buffer-bindings' inserts the list of all
-defined keys and their definitions.
-
-*** New function `keymap-prompt' returns the prompt string of a keymap.
-
 *** (map-keymap FUNCTION KEYMAP) applies the function to each binding
 in the keymap.
 
@@ -4315,35 +4349,22 @@ Lisp packages using many minor mode keymaps can now maintain their own
 keymap alist separate from `minor-mode-map-alist' by adding their
 keymap alist to this list.
 
-*** The definition of a key-binding passed to define-key can use XEmacs-style
-key-sequences, such as [(control a)].
-
-** Abbrev changes:
-
-*** The new function `copy-abbrev-table' copies an abbrev table.
-
-It returns a new abbrev table that is a copy of a given abbrev table.
-
-*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG.
+*** Dense keymaps now handle inheritance correctly.
 
-If non-nil, this marks the abbrev as a "system" abbrev, which means
-that it won't be stored in the user's abbrevs file if he saves the
-abbrevs.  Major modes that predefine some abbrevs should always
-specify this flag.
+Previously a dense keymap would hide all of the simple-char key
+bindings of the parent keymap.
 
 ** Enhancements to process support
 
-*** Function `list-processes' now has an optional argument; if non-nil,
-it lists only the processes whose query-on-exit flag is set.
-
-*** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'.
-
-These replace the old function `process-kill-without-query'.  That
-function is still supported, but new code should use the new
-functions.
+*** Adaptive read buffering of subprocess output.
 
-*** Function `signal-process' now accepts a process object or process
-name in addition to a process id to identify the signaled process.
+On some systems, when Emacs reads the output from a subprocess, the
+output data is read in very small blocks, potentially resulting in
+very poor performance.  This behavior can be remedied to some extent
+by setting the new variable `process-adaptive-read-buffering' to a
+non-nil value (the default), as it will automatically delay reading
+from such processes, allowing them to produce more output before
+Emacs tries to read it.
 
 *** Processes now have an associated property list where programs can
 maintain process state and other per-process related information.
@@ -4353,22 +4374,14 @@ and modify elements on this property list.  Use the new functions
 `process-plist' and `set-process-plist' to access and replace the
 entire property list of a process.
 
-*** Function `accept-process-output' has a new optional fourth arg
-JUST-THIS-ONE.  If non-nil, only output from the specified process
-is handled, suspending output from other processes.  If value is an
-integer, also inhibit running timers.  This feature is generally not
-recommended, but may be necessary for specific applications, such as
-speech synthesis.
+*** Function `list-processes' now has an optional argument; if non-nil,
+it lists only the processes whose query-on-exit flag is set.
 
-*** Adaptive read buffering of subprocess output.
+*** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'.
 
-On some systems, when Emacs reads the output from a subprocess, the
-output data is read in very small blocks, potentially resulting in
-very poor performance.  This behavior can be remedied to some extent
-by setting the new variable `process-adaptive-read-buffering' to a
-non-nil value (the default), as it will automatically delay reading
-from such processes, allowing them to produce more output before
-Emacs tries to read it.
+These replace the old function `process-kill-without-query'.  That
+function is still supported, but new code should use the new
+functions.
 
 *** The new function `call-process-shell-command'.
 
@@ -4378,6 +4391,16 @@ This executes a shell command synchronously in a separate process.
 obeys file handlers.  The file handler is chosen based on
 `default-directory'.
 
+*** Function `signal-process' now accepts a process object or process
+name in addition to a process id to identify the signaled process.
+
+*** Function `accept-process-output' has a new optional fourth arg
+JUST-THIS-ONE.  If non-nil, only output from the specified process
+is handled, suspending output from other processes.  If value is an
+integer, also inhibit running timers.  This feature is generally not
+recommended, but may be necessary for specific applications, such as
+speech synthesis.
+
 *** A process filter function gets the output as multibyte string
 if the process specifies t for its filter's multibyteness.
 
@@ -4420,19 +4443,6 @@ To test for the availability of a given feature, use featurep like this:
 
 *** The old `open-network-stream' now uses `make-network-process'.
 
-*** New functions `process-datagram-address', `set-process-datagram-address'.
-
-These functions are used with datagram-based network processes to get
-and set the current address of the remote partner.
-
-*** New function `format-network-address'.
-
-This function reformats the Lisp representation of a network address
-to a printable string.  For example, an IP address A.B.C.D and port
-number P is represented as a five element vector [A B C D P], and the
-printable string returned for this vector is "A.B.C.D:P".  See the doc
-string for other formatting options.
-
 *** `process-contact' has an optional KEY argument.
 
 Depending on this argument, you can get the complete list of network
@@ -4449,6 +4459,14 @@ connection.  For a server process, no connections are accepted in the
 stopped state.  For a client process, no input is received in the
 stopped state.
 
+*** New function `format-network-address'.
+
+This function reformats the Lisp representation of a network address
+to a printable string.  For example, an IP address A.B.C.D and port
+number P is represented as a five element vector [A B C D P], and the
+printable string returned for this vector is "A.B.C.D:P".  See the doc
+string for other formatting options.
+
 *** New function `network-interface-list'.
 
 This function returns a list of network interface names and their
@@ -4459,6 +4477,11 @@ current network addresses.
 This function returns the network address, hardware address, current
 status, and other information about a specific network interface.
 
+*** New functions `process-datagram-address', `set-process-datagram-address'.
+
+These functions are used with datagram-based network processes to get
+and set the current address of the remote partner.
+
 *** Deleting a network process with `delete-process' calls the sentinel.
 
 The status message passed to the sentinel for a deleted network
@@ -4468,11 +4491,6 @@ connection is closed by the remote peer has been changed to
 
 ** Using window objects:
 
-*** New function `window-body-height'.
-
-This is like `window-height' but does not count the mode line or the
-header line.
-
 *** You can now make a window as short as one line.
 
 A window that is just one line tall does not display either a mode
@@ -4489,6 +4507,14 @@ the mode line.
 *** The new functions `window-pixel-edges' and `window-inside-pixel-edges'
 return window edges in units of pixels, rather than columns and lines.
 
+*** New function `window-body-height'.
+
+This is like `window-height' but does not count the mode line or the
+header line.
+
+*** The new function `adjust-window-trailing-edge' moves the right
+or bottom edge of a window.  It does not move other window edges.
+
 *** The new macro `with-selected-window' temporarily switches the
 selected window without impacting the order of `buffer-list'.
 It saves and restores the current buffer, too.
@@ -4513,11 +4539,18 @@ and scroll-bar settings.
 argument `dedicated'.  If non-nil, those functions do not ignore
 dedicated windows.
 
-*** The new function `adjust-window-trailing-edge' moves the right
-or bottom edge of a window.  It does not move other window edges.
-
 ** Customizable fringe bitmaps
 
+*** There are new display properties, `left-fringe' and `right-fringe',
+that can be used to show a specific bitmap in the left or right fringe
+bitmap of the display line.
+
+Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a
+symbol identifying a fringe bitmap, either built-in or defined with
+`define-fringe-bitmap', and FACE is an optional face name to be used
+for displaying the bitmap instead of the default `fringe' face.
+When specified, FACE is automatically merged with the `fringe' face.
+
 *** New buffer-local variables `fringe-indicator-alist' and
 `fringe-cursor-alist' maps between logical (internal) fringe indicator
 and cursor symbols and the actual fringe bitmaps to be displayed.
@@ -4536,16 +4569,6 @@ used for a specific fringe bitmap.  The face is automatically merged
 with the `fringe' face, so normally, the face should only specify the
 foreground color of the bitmap.
 
-*** There are new display properties, `left-fringe' and `right-fringe',
-that can be used to show a specific bitmap in the left or right fringe
-bitmap of the display line.
-
-Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a
-symbol identifying a fringe bitmap, either built-in or defined with
-`define-fringe-bitmap', and FACE is an optional face name to be used
-for displaying the bitmap instead of the default `fringe' face.
-When specified, FACE is automatically merged with the `fringe' face.
-
 *** New function `fringe-bitmaps-at-pos' returns the current fringe
 bitmaps in the display line at a given buffer position.
 
@@ -4818,26 +4841,16 @@ controlled/overridden via the `pointer' text property.
 
 ** Mouse event enhancements:
 
-*** Mouse events for clicks on window fringes now specify `left-fringe'
-or `right-fringe' as the area.
-
 *** All mouse events now include a buffer position regardless of where
 you clicked.  For mouse clicks in window margins and fringes, this is
 a sensible buffer position corresponding to the surrounding text.
 
-*** `posn-point' now returns buffer position for non-text area events.
-
-*** Function `mouse-set-point' now works for events outside text area.
-
-*** New function `posn-area' returns window area clicked on (nil means
-text area).
+*** Mouse events for clicks on window fringes now specify `left-fringe'
+or `right-fringe' as the area.
 
 *** Mouse events include actual glyph column and row for all event types
 and all areas.
 
-*** New function `posn-actual-col-row' returns the actual glyph coordinates
-of the mouse event position.
-
 *** Mouse events can now indicate an image object clicked on.
 
 *** Mouse events include relative X and Y pixel coordinates relative to
@@ -4846,6 +4859,16 @@ the top left corner of the object (image or character) clicked on.
 *** Mouse events include the pixel width and height of the object
 (image or character) clicked on.
 
+*** Function `mouse-set-point' now works for events outside text area.
+
+*** `posn-point' now returns buffer position for non-text area events.
+
+*** New function `posn-area' returns window area clicked on (nil means
+text area).
+
+*** New function `posn-actual-col-row' returns the actual glyph coordinates
+of the mouse event position.
+
 *** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'.
 
 These return the image or string object of a mouse click, the X and Y
@@ -4907,12 +4930,6 @@ directly in the `face' property instead of using a named face.
 defaults that apply to all the subsequent cases (and can be overridden
 by them).
 
-*** The variable `face-font-rescale-alist' specifies how much larger
-(or smaller) font we should use.  For instance, if the value is
-'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
-point, we actually use a font of 13 point if the font matches
-SOME-FONTNAME-PATTERN.
-
 *** The function `face-differs-from-default-p' now truly checks
 whether the given face displays differently from the default face or
 not (previously it did only a very cursory check).
@@ -4934,6 +4951,12 @@ releases of Emacs, the order was the opposite.  This change was made
 so that :inherit face lists operate identically to face lists in text
 `face' properties.
 
+*** The variable `face-font-rescale-alist' specifies how much larger
+(or smaller) font we should use.  For instance, if the value is
+'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
+point, we actually use a font of 13 point if the font matches
+SOME-FONTNAME-PATTERN.
+
 *** On terminals, faces with the :inverse-video attribute are displayed
 with swapped foreground and background colors even when one of them is
 not specified.  In previous releases of Emacs, if either foreground
@@ -4987,56 +5010,60 @@ of multiline constructs so that such constructs get properly recognized.
 
 ** Major mode mechanism changes:
 
-*** If new variable `auto-mode-case-fold' is set to a non-nil value,
-Emacs will perform a second case-insensitive search through
-`auto-mode-alist' if the first case-sensitive search fails.  This
-means that a file FILE.TXT is opened in text-mode, and a file
-PROG.HTML is opened in html-mode.  Note however, that independent of
-this setting, *.C files are usually recognized as C++ files.  It also
-has no effect on systems with case-insensitive file names.
-
 *** New variable `magic-mode-alist' determines major mode for a file by
 looking at the file contents.  It takes precedence over `auto-mode-alist'.
 
-*** An interpreter magic line (if present) takes precedence over the
-file name when setting the major mode.
+*** New variable `magic-fallback-mode-alist' determines major mode for a file by
+looking at the file contents.  It is handled after `auto-mode-alist',
+only if `auto-mode-alist' (and `magic-mode-alist') says nothing about the file.
 
 *** XML or SGML major mode is selected when file starts with an `<?xml'
 or `<!DOCTYPE' declaration.
 
-*** Use the new function `run-mode-hooks' to run the major mode's mode hook.
+*** An interpreter magic line (if present) takes precedence over the
+file name when setting the major mode.
+
+*** If new variable `auto-mode-case-fold' is set to a non-nil value,
+Emacs will perform a second case-insensitive search through
+`auto-mode-alist' if the first case-sensitive search fails.  This
+means that a file FILE.TXT is opened in text-mode, and a file
+PROG.HTML is opened in html-mode.  Note however, that independent of
+this setting, *.C files are usually recognized as C++ files.  It also
+has no effect on systems with case-insensitive file names.
 
 *** All major mode functions should now run the new normal hook
 `after-change-major-mode-hook', at their very end, after the mode
 hooks.  `run-mode-hooks' does this automatically.
 
-*** If a major mode function has a non-nil `no-clone-indirect'
-property, `clone-indirect-buffer' signals an error if you use
-it in that buffer.
-
 *** Major modes can define `eldoc-documentation-function'
 locally to provide Eldoc functionality by some method appropriate to
 the language.
 
-*** `define-derived-mode' by default creates a new empty abbrev table.
-It does not copy abbrevs from the parent mode's abbrev table.
+*** Use the new function `run-mode-hooks' to run the major mode's mode hook.
 
 *** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
 are used by `define-derived-mode' to make sure the mode hook for the
 parent mode is run at the end of the child mode.
 
+*** `define-derived-mode' by default creates a new empty abbrev table.
+It does not copy abbrevs from the parent mode's abbrev table.
+
+*** If a major mode function has a non-nil `no-clone-indirect'
+property, `clone-indirect-buffer' signals an error if you use
+it in that buffer.
+
 ** Minor mode changes:
 
 *** `define-minor-mode' now accepts arbitrary additional keyword arguments
 and simply passes them to `defcustom', if applicable.
 
-*** `minor-mode-list' now holds a list of minor mode commands.
-
 *** `define-globalized-minor-mode'.
 
 This is a new name for what was formerly called
 `easy-mmode-define-global-mode'.  The old name remains as an alias.
 
+*** `minor-mode-list' now holds a list of minor mode commands.
+
 ** Command loop changes:
 
 *** The new function `called-interactively-p' does what many people
@@ -5155,6 +5182,41 @@ Reference manual for more detailed documentation.
 *** When using non-toolkit scroll bars with the default width,
 the `scroll-bar-width' frame parameter value is nil.
 
+** Mode line changes:
+
+*** New function `format-mode-line'.
+
+This returns the mode line or header line of the selected (or a
+specified) window as a string with or without text properties.
+
+*** The new mode-line construct `(:propertize ELT PROPS...)' can be
+used to add text properties to mode-line elements.
+
+*** The new `%i' and `%I' constructs for `mode-line-format' can be used
+to display the size of the accessible part of the buffer on the mode
+line.
+
+*** Mouse-face on mode-line (and header-line) is now supported.
+
+** Menu manipulation changes:
+
+*** To manipulate the File menu using easy-menu, you must specify the
+proper name "file".  In previous Emacs versions, you had to specify
+"files", even though the menu item itself was changed to say "File"
+several versions ago.
+
+*** The dummy function keys made by easy-menu are now always lower case.
+If you specify the menu item name "Ada", for instance, it uses `ada'
+as the "key" bound by that key binding.
+
+This is relevant only if Lisp code looks for the bindings that were
+made with easy-menu.
+
+*** `easy-menu-define' now allows you to use nil for the symbol name
+if you don't need to give the menu a name.  If you install the menu
+into other keymaps right away (MAPS is non-nil), it usually doesn't
+need to have a name.
+
 ** Mule changes:
 
 *** Already true in Emacs 21.1, but not emphasized clearly enough:
@@ -5172,9 +5234,6 @@ the time it takes to convert the format.
 3. For binary files where format conversion would be pointless and
 wasteful.
 
-*** `set-buffer-file-coding-system' now takes an additional argument,
-NOMODIFY.  If it is non-nil, it means don't mark the buffer modified.
-
 *** The new variable `auto-coding-functions' lets you specify functions
 to examine a file being visited and deduce the proper coding system
 for it.  (If the coding system is detected incorrectly for a specific
@@ -5201,40 +5260,8 @@ hash tables defined by the Lisp function `define-translation-hash-table'.
 *** New function `quail-find-key' returns a list of keys to type in the
 current input method to input a character.
 
-** Mode line changes:
-
-*** New function `format-mode-line'.
-
-This returns the mode line or header line of the selected (or a
-specified) window as a string with or without text properties.
-
-*** The new mode-line construct `(:propertize ELT PROPS...)' can be
-used to add text properties to mode-line elements.
-
-*** The new `%i' and `%I' constructs for `mode-line-format' can be used
-to display the size of the accessible part of the buffer on the mode
-line.
-
-*** Mouse-face on mode-line (and header-line) is now supported.
-
-** Menu manipulation changes:
-
-*** To manipulate the File menu using easy-menu, you must specify the
-proper name "file".  In previous Emacs versions, you had to specify
-"files", even though the menu item itself was changed to say "File"
-several versions ago.
-
-*** The dummy function keys made by easy-menu are now always lower case.
-If you specify the menu item name "Ada", for instance, it uses `ada'
-as the "key" bound by that key binding.
-
-This is relevant only if Lisp code looks for the bindings that were
-made with easy-menu.
-
-*** `easy-menu-define' now allows you to use nil for the symbol name
-if you don't need to give the menu a name.  If you install the menu
-into other keymaps right away (MAPS is non-nil), it usually doesn't
-need to have a name.
+*** `set-buffer-file-coding-system' now takes an additional argument,
+NOMODIFY.  If it is non-nil, it means don't mark the buffer modified.
 
 ** Operating system access:
 
@@ -5254,6 +5281,18 @@ formerly used for that purpose is now an alias for locale-coding-system.
 *** New function `redirect-debugging-output' can be used to redirect
 debugging output on the stderr file handle to a file.
 
+** GC changes:
+
+*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
+as the heap size increases.
+
+*** New variables `gc-elapsed' and `gcs-done' provide extra information
+on garbage collection.
+
+*** The normal hook `post-gc-hook' is run at the end of garbage collection.
+
+The hook is run with GC inhibited, so use it with care.
+
 ** Miscellaneous:
 
 *** A number of hooks have been renamed to better follow the conventions:
@@ -5274,18 +5313,6 @@ Use the LOCAL arg of `add-hook'.
 
 *** New function `x-send-client-message' sends a client message when
 running under X.
-
-** GC changes:
-
-*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
-as the heap size increases.
-
-*** New variables `gc-elapsed' and `gcs-done' provide extra information
-on garbage collection.
-
-*** The normal hook `post-gc-hook' is run at the end of garbage collection.
-
-The hook is run with GC inhibited, so use it with care.
 \f
 * New Packages for Lisp Programming in Emacs 22.1
 
index 4d4603b4be0c1c6be30b9c08327f2a6c67edf4ae..00dedc0c3631083a05f7b27a58f9541629b2487b 100644 (file)
@@ -144,6 +144,20 @@ Reportedly this patch in X fixes the problem.
         }
         return ret;
 
+** Emacs crashes on startup after a glibc upgrade.
+
+This is caused by a binary incompatible change to the malloc
+implementation in glibc 2.5.90-22.  As a result, Emacs binaries built
+using prior versions of glibc crash when run under 2.5.90-22.
+
+This problem was first seen in pre-release versions of Fedora 7, and
+may be fixed in the final Fedora 7 release.  To stop the crash from
+happening, first try upgrading to the newest version of glibc; if this
+does not work, rebuild Emacs with the same version of glibc that you
+will run it under.  For details, see
+
+https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=239344
+
 * Crash bugs
 
 ** Emacs crashes in x-popup-dialog.
@@ -2161,6 +2175,11 @@ month names with consistent widths for some locales on some versions
 of Windows. This is caused by a deficiency in the underlying system
 library function.
 
+Files larger than 4GB cause overflow in the size (represented as a
+32-bit integer) reported by `file-attributes'.  This affects Dired as
+well, since the Windows port uses a Lisp emulation of `ls' that relies
+on `file-attributes'.
+
 ** Typing Alt-Shift has strange effects on MS-Windows.
 
 This combination of keys is a command to change keyboard layout.  If
@@ -2767,6 +2786,15 @@ Remove the "#if 0" and "#endif" directives which surround this, save
 the file, and then reconfigure and rebuild Emacs.  The dumping process
 should now succeed.
 
+*** OpenBSD 4.0 macppc: Segfault during dumping.
+
+The build aborts with signal 11 when the command `./temacs --batch
+--load loadup bootstrap' tries to load files.el.  A workaround seems
+to be to reduce the level of compiler optimization used during the
+build (from -O2 to -O1).  It is possible this is an OpenBSD
+GCC problem specific to the macppc architecture, possibly only
+occurring with older versions of GCC (e.g. 3.3.5).
+
 ** Installation
 
 *** Installing Emacs gets an error running `install-info'.
@@ -2781,6 +2809,33 @@ with spaces in the value, eg --enable-locallisppath='/path/with\ spaces'.
 Using directory paths with spaces is not supported at this time: you
 must re-configure without using spaces.
 
+*** Installing to a directory with non-ASCII characters in the name fails.
+
+Installation may fail, or the Emacs executable may not start
+correctly, if a directory name containing non-ASCII characters is used
+as a `configure' argument (e.g. `--prefix').  The problem can also
+occur if a non-ASCII directory is specified in the EMACSLOADPATH
+envvar.
+
+*** On Solaris, use GNU Make when installing an out-of-tree build
+
+The Emacs configuration process allows you to configure the
+build environment so that you can build emacs in a directory
+outside of the distribution tree.  When installing Emacs from an
+out-of-tree build directory on Solaris, you may need to use GNU
+make.  The make programs bundled with Solaris support the VPATH
+macro but use it differently from the way the VPATH macro is
+used by GNU make.  The differences will cause the "make install"
+step to fail, leaving you with an incomplete emacs
+installation.  GNU make is available in /usr/sfw/bin on Solaris
+10 and can be installed as /opt/sfw/bin/gmake from the Solaris 9
+Software Companion CDROM.
+
+The problems due to the VPATH processing differences affect only
+out of tree builds so, if you are on a Solaris installation
+without GNU make, you can install Emacs completely by installing
+from a build environment using the original emacs distribution tree.
+
 ** First execution
 
 *** Emacs binary is not in executable format, and cannot be run.
index 0c778c7b7bedc6b59c88f26c13db123027836f64..50fb4a19484cf5974fe4155cbd6ff7b969d775f8 100644 (file)
--- a/etc/TODO
+++ b/etc/TODO
@@ -484,6 +484,13 @@ when the body only calls primitives.
   the definition of `file-attributes' and `directory-files-and-attributes'
   and from the calls.
 
+** Modify the emulation of `stat' for MS-Windows to support large files.
+  The current version uses the stock Windows definition of `struct
+  stat', where the file's size is returned as a 32-bit integer.  That
+  overflows for files larger than 4GB.  To fix, modify `stat' to use
+  64-bit size, and use a declaration of `struct stat' that supports
+  such sizes.
+
 ** Make language-info-alist customizable.  Currently a user can customize
   only the variable `current-language-environment'.
 
index 7d90d5a4410b6e61941a251610075f3c735fd80e..ef945420de2a8e11bfbd01eb37e8332c8ee280d9 100644 (file)
@@ -157,7 +157,7 @@ as a batch editor:
 .TP 8
 .BI \-batch
 Edit in batch mode.  The editor will send messages to stderr.  This
-option must be the first in the argument list.  You must use -l and -f
+option must be the first in the argument list.  You must use \-l and \-f
 options to specify files to execute and functions to call.
 .TP
 .B \-kill
@@ -399,12 +399,12 @@ two windows.  Same as typing CTRL-x 2.
 T}
 .\" START DELETING HERE IF YOU'RE NOT USING X MENUS
 CTRL-SHIFT-left        T{
-X buffer menu--hold the buttons and keys
+X buffer menu \(em hold the buttons and keys
 down, wait for menu to appear, select
 buffer, and release.  Move mouse out of
 menu and release to cancel.
 T}
-CTRL-SHIFT-middle      X help menu--pop up index card menu for Emacs help.
+CTRL-SHIFT-middle      X help menu \(em pop up index card menu for Emacs help.
 .\" STOP DELETING HERE IF YOU'RE NOT USING X MENUS
 CTRL-SHIFT-right       T{
 Select window with mouse, and delete all
diff --git a/etc/emacs.py b/etc/emacs.py
new file mode 100644 (file)
index 0000000..0d0f2e7
--- /dev/null
@@ -0,0 +1,232 @@
+"""Definitions used by commands sent to inferior Python in python.el."""
+
+# Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
+# Author: Dave Love <fx@gnu.org>
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# GNU Emacs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+import os, sys, traceback, inspect, __main__
+from sets import Set
+
+__all__ = ["eexecfile", "eargs", "complete", "ehelp", "eimport", "modpath"]
+
+def format_exception (filename, should_remove_self):
+    type, value, tb = sys.exc_info ()
+    sys.last_type = type
+    sys.last_value = value
+    sys.last_traceback = tb
+    if type is SyntaxError:
+        try: # parse the error message
+            msg, (dummy_filename, lineno, offset, line) = value
+        except:
+            pass # Not the format we expect; leave it alone
+        else:
+            # Stuff in the right filename
+            value = SyntaxError(msg, (filename, lineno, offset, line))
+            sys.last_value = value
+    res = traceback.format_exception_only (type, value)
+    # There are some compilation errors which do not provide traceback so we
+    # should not massage it.
+    if should_remove_self:
+        tblist = traceback.extract_tb (tb)
+        del tblist[:1]
+        res = traceback.format_list (tblist)
+        if res:
+            res.insert(0, "Traceback (most recent call last):\n")
+        res[len(res):] = traceback.format_exception_only (type, value)
+    # traceback.print_exception(type, value, tb)
+    for line in res: print line,
+
+def eexecfile (file):
+    """Execute FILE and then remove it.
+    Execute the file within the __main__ namespace.
+    If we get an exception, print a traceback with the top frame
+    (ourselves) excluded."""
+    # We cannot use real execfile since it has a bug where the file stays
+    # locked forever (under w32) if SyntaxError occurs.
+    # --- code based on code.py and PyShell.py.
+    try:
+        try:
+            source = open (file, "r").read()
+            code = compile (source, file, "exec")
+        # Other exceptions (shouldn't be any...) will (correctly) fall
+        # through to "final".
+        except (OverflowError, SyntaxError, ValueError):
+            # FIXME: When can compile() raise anything else than
+            # SyntaxError ????
+            format_exception (file, False)
+            return
+        try:
+            exec code in __main__.__dict__
+        except:
+            format_exception (file, True)
+    finally:
+       os.remove (file)
+
+def eargs (name, imports):
+    "Get arglist of NAME for Eldoc &c."
+    try:
+       if imports: exec imports
+       parts = name.split ('.')
+       if len (parts) > 1:
+           exec 'import ' + parts[0] # might fail
+       func = eval (name)
+       if inspect.isbuiltin (func) or type(func) is type:
+           doc = func.__doc__
+           if doc.find (' ->') != -1:
+               print '_emacs_out', doc.split (' ->')[0]
+           else:
+               print '_emacs_out', doc.split ('\n')[0]
+           return
+       if inspect.ismethod (func):
+           func = func.im_func
+       if not inspect.isfunction (func):
+            print '_emacs_out '
+            return
+       (args, varargs, varkw, defaults) = inspect.getargspec (func)
+       # No space between name and arglist for consistency with builtins.
+       print '_emacs_out', \
+           func.__name__ + inspect.formatargspec (args, varargs, varkw,
+                                                  defaults)
+    except:
+       print "_emacs_out "
+
+def all_names (object):
+    """Return (an approximation to) a list of all possible attribute
+    names reachable via the attributes of OBJECT, i.e. roughly the
+    leaves of the dictionary tree under it."""
+
+    def do_object (object, names):
+       if inspect.ismodule (object):
+           do_module (object, names)
+       elif inspect.isclass (object):
+           do_class (object, names)
+       # Might have an object without its class in scope.
+       elif hasattr (object, '__class__'):
+           names.add ('__class__')
+           do_class (object.__class__, names)
+       # Probably not a good idea to try to enumerate arbitrary
+       # dictionaries...
+       return names
+
+    def do_module (module, names):
+       if hasattr (module, '__all__'): # limited export list
+           names.union_update (module.__all__)
+           for i in module.__all__:
+               do_object (getattr (module, i), names)
+       else:                   # use all names
+           names.union_update (dir (module))
+           for i in dir (module):
+               do_object (getattr (module, i), names)
+       return names
+
+    def do_class (object, names):
+       ns = dir (object)
+       names.union_update (ns)
+       if hasattr (object, '__bases__'): # superclasses
+           for i in object.__bases__: do_object (i, names)
+       return names
+
+    return do_object (object, Set ([]))
+
+def complete (name, imports):
+    """Complete TEXT in NAMESPACE and print a Lisp list of completions.
+    Exec IMPORTS first."""
+    import __main__, keyword
+
+    def class_members(object):
+       names = dir (object)
+       if hasattr (object, '__bases__'):
+           for super in object.__bases__:
+               names = class_members (super)
+       return names    
+
+    names = Set ([])
+    base = None
+    try:
+       dict = __main__.__dict__.copy()
+       if imports: exec imports in dict
+       l = len (name)
+       if not "." in name:
+           for list in [dir (__builtins__), keyword.kwlist, dict.keys()]:
+               for elt in list:
+                   if elt[:l] == name: names.add(elt)
+       else:
+           base = name[:name.rfind ('.')]
+           name = name[name.rfind('.')+1:]
+           try:
+               object = eval (base, dict)
+               names = Set (dir (object))
+               if hasattr (object, '__class__'):
+                   names.add('__class__')
+                   names.union_update (class_members (object))
+           except: names = all_names (dict)
+    except: return []
+    l = len(name)
+    print '_emacs_out (',
+    for n in names:
+       if name == n[:l]:
+           if base: print '"%s.%s"' % (base, n),
+           else: print '"%s"' % n,
+    print ')'
+
+def ehelp (name, imports):
+    """Get help on string NAME.
+    First try to eval name for, e.g. user definitions where we need
+    the object.  Otherwise try the string form."""
+    locls = {}
+    if imports:
+       try: exec imports in locls
+       except: pass
+    try: help (eval (name, globals(), locls))
+    except: help (name)
+
+def eimport (mod, dir):
+    """Import module MOD with directory DIR at the head of the search path.
+    NB doesn't load from DIR if MOD shadows a system module."""
+    from __main__ import __dict__
+
+    path0 = sys.path[0]
+    sys.path[0] = dir
+    try:
+       try:
+           if __dict__.has_key(mod) and inspect.ismodule (__dict__[mod]):
+               reload (__dict__[mod])
+           else:
+               __dict__[mod] = __import__ (mod)
+       except:
+           (type, value, tb) = sys.exc_info ()
+           print "Traceback (most recent call last):"
+           traceback.print_exception (type, value, tb.tb_next)
+    finally:
+       sys.path[0] = path0
+
+def modpath (module):
+    """Return the source file for the given MODULE (or None).
+Assumes that MODULE.py and MODULE.pyc are in the same directory."""
+    try:
+       path = __import__ (module).__file__
+       if path[-4:] == '.pyc' and os.path.exists (path[0:-1]):
+           path = path[:-1]
+       print "_emacs_out", path
+    except:
+       print "_emacs_out ()"
+
+# print '_emacs_ok'            # ready for input and can call continuation
+
+# arch-tag: d90408f3-90e2-4de4-99c2-6eb9c7b9ca46
index 561ba55e5c1f9d9585a7e958b31e48be7a8ebd05..04b67f389f4965ee93cba199c9ca546b627dccb9 100644 (file)
@@ -224,7 +224,7 @@ Tag TCL files (this last example shows the usage of a \fItagregexp\fP):
 
 .br
 A regexp can be preceded by {\fIlang\fP}, thus restricting it to match
-lines of files of the specified language.  Use \fBetags --help\fP to obtain
+lines of files of the specified language.  Use \fBetags \-\-help\fP to obtain
 a list of the recognised languages.  This feature is particularly useful inside
 \fBregex files\fP.  A regex file contains one regex per line.  Empty lines,
 and those lines beginning with space or tab are ignored.  Lines beginning
index d1b8b4322add8270e46d5092bbfc53a92a41a119..b42e35568ae7b13c1920b7e2b11a08a6b525568f 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
-%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
+%%Creator: dvips(k) 5.95b Copyright 2005 Radical Eye Software
 %%Title: fr-refcard.dvi
-%%Pages: 3
+%%Pages: 2
 %%PageOrder: Ascend
 %%Orientation: Landscape
 %%BoundingBox: 0 0 595 842
@@ -9,9 +9,10 @@
 %%DocumentPaperSizes: a4
 %%EndComments
 %DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -t a4 -t landscape fr-refcard.dvi
+%DVIPSCommandLine: dvips -t a4 -t landscape fr-refcard.dvi -o
+%+ fr-refcard.ps
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2007.03.22:0018
+%DVIPSSource:  TeX output 2007.05.15:0316
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -169,6 +170,7 @@ dup 100 /d put
 dup 101 /e put
 dup 103 /g put
 dup 105 /i put
+dup 107 /k put
 dup 108 /l put
 dup 109 /m put
 dup 110 /n put
@@ -207,114 +209,123 @@ E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
 BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
 09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
 3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4BB6D48613A88F926E0EB1BE5F6E29CA5350841244E1718987727B7245
-E7DDE2528073015C64AEE3BF18734A0C48AFF16A354C14E1A6D9D5DC96C06E02
-3A1FE4AF93E8349C3293F62C3466B67D25A9533C6DAA4514EA201B79042CB220
-43B3B60E13200B4F47011F95BA2EF1D6548218DCDBC1B00CCAE375F91EB60E32
-9F1198D74BC3768101AB5F2E7BDEA9FE5C1379341C604D835B50B671793DD7EF
-605F60048FC9761FE50647C15C2424EABDC9AF4257F915282EFF1CF447EA3F0B
-EE81FB67B04703215DB6AB3E47B7EE06435234C834DF84A3E0F99D753D596305
-85DD514BA3C5ACCD8BF6BC804AEA170A32B2080B694CF7FE994228ECCAD86C4B
-CB8B963E84D46ED86B2D43DADB277A79DD100777CB0F2022C8AC9DA77D500C73
-D6E15540121B6D82457096083526C7E2697F776239E02C3E64D25AFBFB58474E
-E82672F2FBEA78ED5DCA1BB4FCD627BAAB6AB50232EDBE99D6CC51A287F80DCF
-14CC7DE3DCFF47A1DFA130CF7F502193C6C00B1A7A1515FF7374351238158B97
-AA26F0F2773E81CD03F4A398BEFBDCB450F0FA6450FD48B5A69E37B036BE5F85
-0F0B1AAAB2CF3098AEF32B0902398A6A9E1DB5A0C42DD39E3208C4F8BBEC0A98
-35FC84FF5EB2293644F7E6EF28FAF5F6E5205029CCFF7342BC276958EFFD7817
-5D9F367C6FF151B12353BE9DDCF75196F2C8C8C889BB097A3D9D8FF5D77A7184
-D9F3EAC4493E94DC73886AFD7652ADBF562189B0B85FA5AEA4CA44558D70A408
-4A276D6B0BCF6ED2F5E42E97933AEC978D286B3D0A99C6C7AB10AC6D1C36B07D
-EA2F47489D4C2A55A6902C665B7321DD5324C6CE172349E5C6561B5F1CBBFD6E
-B5FBBB914307020B218D68C45BB2E9A0BE81C9E8D5D71BC7851CD2922656337A
-9659E8E0A8F240903FC34DA589EC6D1FE6CF17D238576472C0CD1E0EB21A46B5
-5B9DACB6CA3B094E51386E45C506D55EE3AC95AF333EBD0305084697383F054D
-61680900B82CB80D030270CA9C614A373B0B5B26F8465AE581967C6A336D8C44
-21CED60606DF99F05AFC4C37F53D2D97450B78F1211A2682414780DFF7F6AC6E
-750071385D6DC87B58D3D13E286F70B11A692F4BF57BC828C6AA98C44EFE13F8
-44535F79F5458B03AAE3ECEBF2EFD4AA83316E839EF7EBADEA22C17FF039FA85
-498379D857AE78AC68CCC7D1EB2FE84D465AA452F43EC1AFEFE568E42F13E0BC
-1CDF5C873F8E3952713BD9A472E6FC9CDE8DDD9281EE3554C22A0D591C91D3E4
-0B3162930BB6F0AC229EE1C847EC39BF81DDDE1A0B0EC7BC51A05AE93B3A891A
-3FEB85C68C88AADD29FD39F9DB30FB250D41EBB1124ED0069CDC49B3359D8689
-05DCE2A27EFF35751E51E2C4AEA7DC8B2AF546AB58D6BE81DDD38A3A0833AB62
-E54F54ABC2BB67EF06678D0AA3AB0B240FDFD510404D87A1EA75D5005984B7D0
-DE9EE818E8F99BA9FD646FEAB795E5048E0710CEB0CBD8CA39754BCF7957C646
-532525C2B94D55B1AF534778D653BD50DCECF8DFA4CFD08092AA4DD3D8BB43E9
-6F40CE1B0B25287C46AA961061A0AE3714A465E39694B6E62410ECB1F409F939
-51CE57A12C3CB5B4332A3BDEF4C13917982A0A4527440CAD427F1284E6534D68
-201DA7E10B4DC25CCD025DB0D7E0906C59E235CBF747ED10C3300C1BA42BF434
-1A3C9605F0D568CD938B0DEB5C5E8390309BDFA89EFA3E5F226A24910EAB3791
-0361A08FE539B158072E96BC988AB061736F7DD19DEB61DB5738F2B43682C3E7
-12D709F9E149DA4602201AD24F42BBBEDA49118A93A7F26B703AECDE574441EE
-DAF7C634669C0D907B18BF4EAE198E9F3DD8F743FDBDBB2FF8C6650F17115FFF
-890F0FA7B873022FABADAD05C42B65FE98E870568D2CF828CDFF7C1EEEB5BF4B
-5E695EA05518191A5E8D34EB22091935E0816F8B49AFDCC44811D12D3CA85A57
-8C67D67D400ECEBADAABDC5F7D4E1DE4E330FD1A954B925E2A5B1D0CFF2D80D5
-F668367C28480C7EC3359C781279E8928DB03E274855F7001ABCCE243ED7C259
-67D4705EE2211FEF30D8E82F9EA0838B905A9FB986D1DD200524B74EC4B1AF8B
-A0216BBCE594588D8C28A527BC85306960D73D85D96B652B88462881EA065E0C
-84485D21B22E71768A81037FA08C48EA83AEC7118DA808CC62783E7DFB121A87
-0A8DA5BC6AD5B8C8ABD057D94DCD627E2CF3D6AACC031BCD50FF49C658EABCF1
-E6ED48E7B3A550782F077CCE21EFB7368B0D12EDF21BDA1DCD30D523A8B94729
-1E339B18677721963F0F9FF961CA6B065A881546683125114FB8BFBF996BA299
-9CA4E3F5BD5C0D614E2515BB6AAFD9D16E1F0C0409A524D91DAD55BB9630C810
-B1DF32BC5820AA059559A5095BF09750F21E3AECAD39CDB3277D06B78E2A0A08
-533EF557F6815F1C361B2417D27F7D9EFA5C2DB0B2655938C8E9E1E36C411E70
-7D57FD9EAFA6FD2C4D3A40D2F35C176E0522C6D0969A2DB598553D9C0A1940D2
-F3D8241AB8DB63E8426BF19B093D99DECC9E2633FE5C77EE55951036A7E19CC6
-27A2DDA74A95F870306ACF9945AA4FE9E10F1FBC43830B2D817016290E50F988
-7283F8E409B5BD2048CF8E8465DC3EC57EE47A7BB678093183B453FC60A8CD67
-6CE6E21A859B1EEACCB9E0A3DC1AEF41C74FE0E0245587A5E1F107BBA11C2B86
-91690DB7158BDAA3F2D82A820A36B3684CC11CCC4802C5F8135FAABDDD50091E
-97AE58FE38F088A7348D08F1B9A14BFEB8E97D81066D5C244DBDD9ABECECE72C
-6A91E31A815E2B22652F7813BDF07DEF9CBD0E8BB6E7999511289A0CE3CCF502
-14D9A77E29615479657F8BE9AA3EBAC9DD08A04EE7A160A1C528BD6C2CE79E67
-8913543117C32977841E710DCE7C0DAE68888C8EBEBD9883B9F9AF86B1C5790E
-E520337D14F18FB14686356E4F1248B3E884634480E683DDDFE4B0221AF0825C
-AF3B27DC3156F1E0B5E8D75063A10A81A78698BE4E1A4C2F49D2E530AF1ED966
-8EF252D3CBEACAD0394B9546D51768C195A23A041EC1E3F21AC91C498515EDCF
-5A9977F9D72ADBBED88D5E3FFEC64A087FAB9DBDB268608247B977E435E4CE34
-F0C543383384541FF88669E53446065864769D5D3957C64011D7C93FC147B093
-9FA961A60BDDF97F1A3BF53CC18D306DFCFE04DF980F026428E84140542171F0
-F706A48EDEC416DC58F006761686EBA99598962F6E1BEC8E78AEA474CF0AD890
-A72B9906BC891564ECD5440FE6047DB452171AF35C33C24D8A23E41C112D93B5
-F1B422386DFBE80ABBF7BD43F152F0451B7B0DB2D71B75575CB5256C94F40AE2
-E8DB4CABF990502BD74BE028E14C1972E666932E04E79B743B3357737F31D08B
-EB9755DF6C89C185A7F13DA21A6E6E526A9089B11C6BB1F5247E31685B028F52
-555F98CAB929558BA7BCDEAE76F93E7B00B214543EBEA0FA375B624B4553C133
-16D6E2B846FAA862F9DCBD8FCB2A59EADE462BC8FDF8DC56B888C6C5ECF9BBB2
-4197F4DDA197A9405F639643A4334545A8004F05963A05747B4905A319411086
-9A691FF410F400E7E569CF8EA99102A57A569C223B8CF8A4B285ADAEDB238FB4
-5FCCC3A9EB063BFB1F9263D8B31D8AE580B6B8F1F311388B509E224F7E600A98
-DE394C80D1CC6391D45160FC7CE92B0CD7E74B0844DD0F3562B14833A563FE6A
-E5942191AA6BAE176278E9EC30533FE310F0694745C024929A65E4C411DAAF0C
-F3539203284EDADDC1E27FF0EC2FED41AAD7A3CDCBF2B4177647CAEFA2FDD380
-F6483BB02F87E1B66F1F5F8B23DE0ED2EAF4C540A5D392D6B49B0BDF15DEDC09
-13DF0F14E0E49389A82445230CB58704CDF21591EC4E721119F4786523A16BA1
-95F9288C0704DE543FD38496FC59B15143CA8BA06584BE7E6C9F09DD4F207C09
-F2086D39D48B652E45BD2FC4E2C4BC1FE534CC1109E177C7494E0914CD0E45BB
-C8461B6A6FEAC2A2742CB9B3441DB0340DA91F6C6BA5EF79D6363F68A52F3300
-7CF46E9F6D5A7E33762852D4BA13A1825AFCF10B00CF175EB0059D272DBAB911
-30D027A1C1AAF745E0D69B71FB455C1363AF42B7A00B142D9C8ADDF4CE9801AF
-71C666C1A6773BF48F35076FED27423E1CD18139F3D8B0A3E1AE44C55382FC66
-942021B7C1E3451D679218810F816DA083A644A378D6ADEECCC212169B96FEBF
-744AD8C249E092F87CE696C926ED9E61B728674F39DFB645FF5AA6D742B73CF3
-37536ABDB80094DD7CB7D0FC30B6370F8CF9B145F65F4220FA592AF67383108C
-3739E4FD2E0878AF00DDEE092CCD14B1E749941F342701F07097A4DF0EE5AB3A
-B3D9BFE0B1060ADAFA7D4E3392218E5A7AEFE4CC01827ACD6903C2412270367B
-FC75D8C1E290C5489BF2ADE1B3FA6E11B5BCF37FFBC42D0B3E7A7435D6AA7E8F
-62B96A05C15CF7025EE1B0D9CC2580A11A1F187DE686E6F8ABBE658382B212CC
-D9BAB099DD7ED5EC269FF8CAC8C16E101B7AFE3BF9854884FF0746A1B0423FFC
-468342D5D31CEA0EDD7EB5FEEDDB129B7C55DDA20291A18592079BD75D8DCFA1
-2182EB1AB128A319FFB027164B5F9505754A4B1C8DFAD7FF0C892D97FEA8F506
-C65585142BB9F986886117C7CFC66EE962D1609DC1DD36930A6525D1ED03AA93
-282605FCC5C7C651D657EB8ED0A55EE348994C18FF6AEF1D8D669273B6EE450E
-709E6F60358F225E209AD70E96778E8375F41BCEFF74D46D595C0819C85E60DC
-DB702C6AB7E90FEA2EB9EC299FDA15BE8A807EEBEB1BAFD628BB94B1E28EBD60
-B6DAFF828C2C80821C8ECE963DC90E750EB00E3418BD0858AC6595012D32C308
-DDF9F30191779BFD58D93AF0DFEDE67AD6902FCF8C953CF52188311EDD0D005C
-BD31ADEE0825CE1C25725EA2D6C9E5D8D9034C
+E8929A4813956AAB24BE7C20FCF9196E8E2F30816FE2279CE3E6067667A39E44
+488D58BFD17606AE885FA06F478D359A6ECF5564C095FE0E5038425D8B152750
+F72F41B3D1E7420EE91CF4A9ED5BBE8C2275624AE257D2BDF5752E803B426F40
+924CB5C29460BC09EC84F3F3A95F6900836F0ECCF6A7BB85A3F8D650017E5FE0
+503A73644EC6C6B0254F0259F8DD4AB3945950974CEB34521881A2506E76EBB3
+7DBA7812E0186DE2C0AD3E6D42BCA320014368DD738408C54AE2CAAA9C05612B
+E7F33218F2FECCE8DB2E4B3A3BCD9D8D0BAD7EDDCCAE45F6A15FD2B8ED263E45
+14AF0CC7B58EF52D5FE73023EE9DAB8249D1EB3B795C7B42BFD2A2852D2D16BF
+CD71056F412571F41CF7EE80AA916EA4FF1630B1E226F474CC3195006043B1AB
+915DA8A9484B930F1F00028287EA3802DA3C3F99961952E04B736CDEC7768307
+879B4D2D553518FBBA727266F94C3A607FFD5D85CD0FB802CA51E6A3792C80F9
+A637D47C13A787F5D9C5BAC24E843DA198B7CC898AD786DEAC0BA9B6EF955ECC
+72DA3A8CCCF7F3B69597A2F868AE359737A9714AE6D81989B4152DA33095DAB8
+5759080AA156DF1F3767120018CE81D296D813DC52786586CF3F38EE3CE181D3
+9D79439EE13D4E5799E03338E93315C3F6BA8ADC731A0D8282637E524C1E9736
+29C594C6F19B49C859D7CCA98148215F7E6943637797641D44DC9FB8FA403FCA
+BD581E477C7BBDBC84048141760B4EE0D181D585C519D02DEB7D1C650BB49874
+A75E95E6A17D8024346AF3288A32A7EDFFAE15BACD436CC76850F2EAC7EFF565
+C4273160FC5DC7434DB94BFA01D1648421FCFEF66D786CFF60F0031B649B6F14
+E9139B27185E6E9A70E439AA8D68C6535A42634FFDA55DE86BDEDDF3D6B73015
+37C7437A96CDAC620A29942E834F714D82774AED0A83771A152EAC0CC043CB09
+02574AFC4CA006FC0D24C3DAAF4D681CC1D2D7870F273773171A4977AD05A082
+0DF3F50C8A36D7D8AA96E82387AAFB48D048CFAE2CBAA88F1865B84CFBBC1731
+A212A44EB98265A8D4A8C118E038A0C3503B27D8B58846C4F3E8112C8B05A41A
+9F8B0E1513528F5D7E509EE847F7224AA06819954974F8065AF49F21840E972D
+C1B028B541BA1364045E814A9F8FB299B6B62CA150245D92588056992FE6D71B
+FB16F2B42A3DE425B302051FCC4A2AA76F6146BAA385614913D2B11191CA6A09
+BAE8567DCAC342D013C7830A0F03D848397110F021C63C9D6AFA90ABBC2DE4C9
+69EDFEE42C028640F9784E8CA11B83B4E7AB58F8335FA294DD68BA87FFFCC743
+67239D7FF1C54B725D53581832F5307FF1995D8273EBA54372AC82B7D5EC5773
+8F52B55255502008E0EDA0646D4D71137D822A57C0E9E05F3D61B91436B5FFE5
+CD90CABEA89420F4ADD844733B9B0F0C72688B9184A2EF69966411DF2B23A25A
+11F009C6F23E452854B77AA33129C531C2C7A8666D550A83CBA6F251CB016F0C
+940EC74FF62C721F3D854404F431DB39548F0785C5140A9D406C06306CBB0C99
+B7AA0E4680D8DE074B369A7481F0C12BCEDB787A1A9E4C71C869F5022447E317
+E6B851B8D89144BEE028D2352745CB0C081A7E806482F74E7EDDB5F1601A58D9
+EC5B92F7DAD1B462B0EB9DF227D20E2FD7963B11044F6699AEA42D8B6FCE78DF
+F13DF7917F8E9056EF57ABEE9A83EEBD2630452EF3A88FD64BF58135FFDFC5EC
+3C57C10AC6684044FBE557F1435152410707AA671D2B04E6D4C6BF928F876423
+072DCCBED74DB014BF98D66AFF1F2A0C4A725264A36724DE08EE18EB4FCD8451
+2815A6B0CA80C03444039CCA3F6713F0BCD3595E3D6E7F1EAF936C99E445677D
+B96724B2FDB0D2050094229CD7A239C0C72D19914AF99B2985BCFC38A6DCD1D5
+B79A09FC85A955742D9B5C023AD0D53AB5C3EF9853CD74A590441471DE86E170
+E854AA8E23F0F45734B10A87B00F671686D9ADAA574AE633DB6016479D81C5E8
+AE030B680944F4A4D0354BE27192D5B186AC4741E30F887C1FB12D744F3CAB55
+AA891F739CC87B8C9422335D6431CA3598CFAD661AD1C89A5126D0A29707BC2D
+DEF9DA9B5D0AC8BE4425B2BE0C0ED4EA2EFDA1D1C2D4176BF980DC11A7114BB0
+E3F4DA2275D60ADE37E9DF1FF70177368D6DC78065A734EA20E06C8878AABF67
+51BD3758E592B1E389D8266FA4F6BCA64FBCB2487194FEF05914180E879DFEE3
+5EA35A67FCDAFF1887A0F78A9880F2B3304446195CFBDE1399CDC39831D9AEFA
+3C432923BBCA48940019A61AB0464494D29FAC5E6183F9A849D9BAC4296162E5
+A44E1717330C117A402403BEEB31C9BA07C3331BD8FB4BC71AC31EFF81087E72
+A9D75816DF6FD9AAB57C23A46F6DF8415F281F5C39348E8EC540F2AB4BE0CEF8
+87DA88360D12F38130769D0758175FFB61ED8F20C7A17963C4F3F5287D360A72
+4175C45B318A0360CC569F0D47644507FDB4A3699A40662BAD1C65306D652C44
+5C774850560A42157D5507FAC1C7AF431888A5D9BE185AF7772FE57B1F14CA9C
+E13826E6E0531510FA1C8139A365B1641F6EF77F32C5B44AC42BD47DAC9C2FFD
+B99B10700968A44C063B45B96C380C9865667CEAFD8FEC20499966E1960361AA
+0F1D7B9038B27A0BEAD2E4847ECB6787C2F4811EFB5CF7DB92D995E3039C141E
+F17C1BFABE1CF58757675C45FEFF4F7E4B63F10B64AD4586C5AE9219D465BFC5
+DEC3F90DE72189503777D1E382F0F0732DD815B0313B0D0AD6E03A73D0981493
+07F1E96604BE2B3F2B227C038863667E9C58218AEBDD794F2D2DE1AB7CCB8854
+9BB56990DEEF6F7E32D5931102BF059120759EEA11522ECFD8AA20D9E136CB84
+CF6654CF3839C66326D4C926D15254DBB11F9D59A59494B1B794D79E167E9116
+CE9F16C91F297DA655422B05853A72F5E2932725A365B385DF32984364CBAADE
+0A65E573EE13339A505F7B1EA8379B15B0AA01CDDCE32226D33D8D957ECFFA95
+A70BFF143B5ECC595AE58174728DAADEC99801EE8ECC7EB0AF18A056E5B279AD
+B7337916675D3A20A1A45E46FA55F29EE05D38EEC228EC6834F38AC0C5BDBF53
+883BDDE80182B4E8B4606548CECE724AC6BB986761C7618095D4C6B83E72381A
+3E8997C31B659E585708AE8653E011EB837948B7B09E980832BF09A03D244DCB
+A5C89C3B6369C83788E1351F198BEA1F98C36B17A40CF2A6809C8CC43C18DEE5
+CD29DDB52BA4530CFCE4711059B88DC0D16C0F9D6DEEB058A108CE5E861A66B3
+BC088345B3B0816FA6CDB44BD4696E4D80C73EA34DD795A79C700E36AF4E8256
+76D001C35751B85A17E7BE6985D2FF8D697947CAE32D033EBD5F53D059AAD1B0
+D36391A8C6B85E4D2F08D151711CA356BD738888AD8FA88DF2DE7F8031EBDFAF
+CC40496AF010278B4AD4921FCE02A732A26700EDBA79ACAC0DD69E4BC0E553F0
+0357F59B6DE1B76C9E5FA97A51F69BCA3182F2CE60D0A6C3EE3C917237CFAC83
+1787DCFDEDF7851B02EDC8F14D5B40DC05136BA95C9B9EB2BC5091F332C77386
+1D7EC7AFA6BCCB87E8AFC067F45589667E52AB0D469832D209E445CBE57400FD
+1CA88231B2772B22AF30B5958F8703C3A238B4CFF00171D30C939D9500637966
+19F43DFEC9BD39D516365DB22DC53DD20AFD9511F7B1DC92E0E2191558C97633
+C71730A9E91B3E5639CFCDB7FC7C0B07F81AB1B6FB42C9C27C41B6B5B36287F6
+A80CB722E8795D88AA29DE0BC1275CCC2ABC39E0AE1C15BF0E24C94D231C38DE
+B3D706BF3124B31FD10B6D7A39976D01F21447D41E39048655A44FBADE0B5DB7
+708EB8A877B3F9200F0C43CA35D9A51D258CFD34BC1AF9760B1F1824D65C0DF1
+37781D7A4EFDBB1D6BC8C7303054FEFE34AE8545AEF43FAD7EAC8077B8F23583
+7F793569199A57BD8D1891102768BFA56EF238E990F437060C8772324AD54A91
+7BB72EC46725D3684DD41C25A779C6D6FCCF404399A3FD5658CCDCE608EA9AA0
+BAEE911972BC77AD27C54A9805AD0C041F532FE4F387CC8A4BD24FCECF05B843
+87824C8F540396D1AA94ACB3337DF1E135263EB28C18018F019D6A406A506C72
+59B80CDBF79C51B22A5A70F3E1019AF79ACD67DAC7E343A9773092F4539C5066
+2C82E3442CD513CD8B922204F1FE98D95E48C9A165EA3FE44957A8BED940258C
+977EC33FA627584D4AA5016F9F53D5E6C71FEACE09C91CA0FC92EE825D8DAFB6
+EE671B072833CC1D8FCA04874A6F6081D6413874F0008E7DBC9DD88AD374F6FD
+F4083B759031C5D76A11D30A4B99C33E9A5A75317C1EE0E154780A9D3F235284
+467919B60F44685B760EE3062164A04C304B7CED681C7FE0764C4A19CC14828F
+B65BAA2176F3B3232C62F2DD26C145DF814D37056830B08B0FA9BE0245BFA82A
+994A7341CD152783100917C4DE1EC36AA31FCD73F3914BED2A0393599E9A6572
+202925C9C7E55000672235AE2F557416E1032AB1C287BF53989EA541018192F3
+74060BCC8F46E073F7CC001F03547D229B1C53185147FA4DDC2B99A5DAAA041C
+6E8CD64B9BB3AC5DEA2641858D02A79FEEA73F537FF5571A20D8FCC7F18FB20B
+35AD024FEAAF8C2AF17A8A04DCE887681AE02D6184A8A20275E3731026C34E59
+2E17E820BE88FCBECF72CF061B5110C16D36DDB19DFE009F22642AF7D0A42C29
+FA410E4D4F58A3F7ACAB152480BA58CA3415C3C8BF76F9A976FA5DE2111A2344
+D581D2F73DEA5EACA5DD1C4E9BD0D77DAC82C6B407B1726E018D26081D87B94D
+B6B536CE84BDE6B73189411CBBEB50C43E64E3FC2D24D7979A408F568D900EC5
+438FE7EF78116A98E2F6D117A6D9B12D27A96FE28E9B25DB946A3852E21200E1
+2C258483657D525746A678DC4D3726E890485A742BAF318BDF08CAC98BD1C9A3
+FF818252D2F1141185DBF6D84D7C393C50BF90C1D76A8052CEC8FECC7E196C61
+30F23DF9BDC028919D694759967789FA88907AC476B02C9B5E925A5143B1AEDD
+134DEFDB26DA3B3F646FE596690296681FC17F0D22F5A0B1375DDD5ED741219F
+A6A2B2F6D20ED4C031861357C2CA7D86DF95E82B1579D26936BD9A13C59FB004
+33088EDE3435BE982D6AE595BA825F64A82F0D6E84379A67556584DD0F415047
+33B6462EF72860D1A9FBDAB44CE06981D17E0C0712D86FF158C9A7CAED4C4331
+5E4118D8AA718FA6A8D371EC1E8421AB116E893E905F5E352F7AC4057D4C546F
+068E508D21B6561AF9F5651995A9FA9DE2F8F6276722949488E53BD5169F1868
+
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -404,7 +415,6 @@ end readonly def
 dup 18 /grave put
 dup 19 /acute put
 dup 24 /cedilla put
-dup 39 /quoteright put
 dup 44 /comma put
 dup 45 /hyphen put
 dup 46 /period put
@@ -413,7 +423,6 @@ dup 49 /one put
 dup 50 /two put
 dup 51 /three put
 dup 53 /five put
-dup 54 /six put
 dup 55 /seven put
 dup 65 /A put
 dup 66 /B put
@@ -422,7 +431,6 @@ dup 69 /E put
 dup 70 /F put
 dup 71 /G put
 dup 73 /I put
-dup 74 /J put
 dup 77 /M put
 dup 78 /N put
 dup 80 /P put
@@ -453,6 +461,7 @@ dup 118 /v put
 dup 119 /w put
 dup 121 /y put
 dup 122 /z put
+dup 127 /dieresis put
 readonly def
 /FontBBox{-20 -250 1193 750}readonly def
 currentdict end
@@ -481,253 +490,243 @@ B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA
 99B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904
 A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB
 11B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5
-50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB613EAA9394
-D530C44C3FE66EA8FFB60C9AB182FD0F3F939F2633EE5CC31283CF157B4B8D4D
-F4885866C66360340649649BAA36FFEF7EF359D2E3276F855D5F47A63BA8EBE2
-DFC83528B60BE793381B89398CC5F00F8A63BA929BE36FA5327BDBE8B68119F5
-219D0925E7706B4E90BA28D2F6630A56FB0C73B717A4175EE4484E030A0B56B9
-D0A6E4244E9C27EA03F3F041F5F6138FE0A10CE95492F8505D02C395B5466BB9
-71F42E9AA34E61896DE1837B6647BD578A66320A79C6CFC75CF4234AC6745610
-E8EA4A80A08C87FF834A997C73AED3711458D395DC0509FC4A0AD8C02BAD0A82
-1C4CBA3AAF2CA5FCFC79CC0B2755CB1BD58F3DAE3B802A3ACA5E3E04E5B6C577
-C7CE3C88844C19114758B2E07CC5A3AA2932221EA2794E875E7CAEF35828B992
-66C970DD5FB13C21C787452BA5B3421C9BA6FE12900ACDE16088734FD017F221
-0D4748A96970790A94DB9EECFFF0940746ECC399A614C8B91FD2A46BFE7FC0B4
-FC3716DEB3C23475D8051C37033A8F4AA09F24190BFF65C44767929374C30691
-CC99832736045D3FDC8D62875BFC0371FF64613AE62E07F6CCB07990D44CF2FC
-15584D20F6FD2FFD9390E7C4E04DE67093A7FB7ED9DF317FCEB909B9E3910CBC
-34F3C7870FC8200DCB0EF4F0BCB8BB88DAF95FC2C5BD4ECAB0AB0DD5AFE65881
-8EA6E45ED985DB9EC02ED4873C8A61A6ECAC723835822AC111821826F894EB97
-B24CC14F23899C6308B46D439228ADEE575D8573B75262FD39778711F255514E
-B0089950B2D5E4511A505BE441AA0B6343986C5D47893B9F2EA8E2B0985F25BB
-F101BD6DF9A1C8F911AEB5C80476F116888D759C7F69C2CD17A6B6E13E2047A4
-97D50D6C7F064682B6062F51CCAF91AEB28C3D1A27D00F1506A5C5E424B7F9B9
-F61C5490109EF8A1024272CE56DD5D628366E66338F9F41C1F7374F3C45D1702
-C4B76468B7343E2A999C0C3D8E7C98F7EB90C9496DC1D929CBE7FB546E9E4BE6
-2EC6F77921A2359C9E61F3CE84BBD3B17B223FC3A0CA8DD41536CA5BAD70823C
-C215305F6E9500FC9650C26BB876966288E3BFC6BE74A284D71D7E573FEB891B
-932E310DF30B91BB20473670AE22D21BC21DDB40AA887112D92B04160329B176
-A5948E6B84594FDE8242BE92EE065CC3DDBB00A58009C649B5BAEEE130BCDD1D
-B9410289F7E4B477F52CE4E97C552F9A8DB5D573FC8AA35EBC7FA4A3EED00540
-F81650DE47117E01F41B7DFBE4945ADED1AD195D4E39F91D63E824100428CB42
-C7A4919B154D1EB79274C476D89553434CC1236E64D2070D24432B4AE25F346A
-C36BA7FD43EB7D4C826C4DC20C384BD67829CBD4696DD17040AC41F8E941DB0A
-95F10349E343067E14F3CAD6C2602D3761D445F6FC94BC2725C8183A7B9B63E3
-44ACFC71131CBB44D872AA9DD609402A03394F9164044005575EB84CFE261812
-70467860A055806E848E01E0245E35EFE12505F425055C32790D2CF475613683
-8B22770A58F3CC356ED3367990FAB109806A5F37A4706DF098EE353F1A626074
-84295A5E4D070E690891DD216B55702FC9A222B5C6000648DE1FD15CD00F50F4
-EB0F28CE7E4DF26A9F5AEA01CDEBFEEB7EAC3BE1A8D2DD9CDBC9216D9CF56C48
-634858C1013AE01F60A19D3CF9D33F02515E1B1A0AE0CE5F49EA2355783E4A03
-3C84920E68355C206FCAB59A91B45DFD25A3D965D2853230579E16526715588C
-1007CD787D72F52C3683DFC7D755AA5820947DCE4D401302DDE4CC46767992D4
-27C9F753D3AA4E52A7DDA0928F2C5A805DDD8D0A8C14254836EE24909DBFDAE8
-20DCADC2931C7AAA089697F00A3F25413FB841AF905C8FF3116BAD21913E3EB2
-9CF58D0FC5AFFE0F08BCF2FDD13684310B586532BA479346607D025C7AC53721
-48751595A910CF11AF8AFACB10D7EF7B8A3B80E4A1782108BB24E1279022F59F
-24828A6B5EE73140A9D1A74AD774C3F4C181179A012B726A922E5D54AB79D5C5
-958344AA47437635790F7B2CB59B9191BFE0F6FBAB28CB78F506DA2A1D601F44
-98BEE1179546E2FD11591B5D50C0B1101AD8B33D4E54AF2C15DBB0570B88AF7E
-43944C5D8D05D817B18E6F41C7E900B56A9CD196D5AFA1D715CEB73C07DF6EC3
-3BF7C9411140B544A6866AE691F55E94A72E4FFD922A2E08FD4C183A5693C355
-AA485656735C842D353687887D59EE375080A61954F5388D52739A3248543220
-1555FCE8956CEACDE634684FC3292089B1008290797B6DCF9F8C7B89E22430C1
-F2C6DA1BF663C05B3BD7DDD2DFF7B6092E377517890C24F08507C9EF29B11F39
-C9A989EE270AAC39C4C12B1F8F749D6C67EF7A0E39EF5D7ABD889F4579CD6DF6
-6EEFB8C099A9087B79A66C3F27C01A12B6692AF19029C257B4C5788BAD3901DC
-58BE54AF112DF564E16E05E3E1A5ADAFC713DEFC4DFCA8203866D95B7A3A7CA5
-0D094D713759132E3069907BCDCC1E411F7C5566D25789F8ED8858FE86705556
-9DC7AD84C8A5F71C7BA386E8E3159927E70616ECE077D72DA51082B08BD36FC2
-25E0678828BAEA91D699871778D34AE22BF05F59FD8A7B7B00D2984AFA884DE2
-EC201E75E02425AE70B432BC1A13A611675A858EFF58E3E10BC679A9AF72912F
-7A3368F44BABC0FC75D32F52E10DE61446C058C83499133AE468281F5609B217
-8008A521909151B53A0802E8C0AC992C7C3BD31E86C9AA2368AEC7964AC23E27
-F5136D4EF3059E332D19121CC95B77E4A40235AB5C3753C4012D62CFCE894094
-EB5D7D7F576CC725A6474C96263384B9B33AEB121A9E40A76937DDE710DC0760
-414F2167C378C01B0124E9A907427EB4A13B8E41CF82BDF4B16E030598B06120
-8F8ED0DEE7E7541B0B5AF6FCE95C20FB7179EF0DA411401E4BBA678F132F60C4
-CCCD0CC45A6B3A3DBADA100D3D24ECB57E3209DFF35ABD022627249C2C9C3971
-86154EE0189583C45C14A3DC8DECDBE168FE2AB8DB78B0C7F5971D670A51B76F
-48B5418F89383F1E7CEF08BAA7DF462E573145E3CF27B28841304DD743C82AB7
-CF134DB64624B7638A86BC077AA3089500749720531713E97F69AE7C908E0387
-890C06F7F621CE571E4367C83EE44A1A7A306DF62B5B1F0F08D4F682507A339C
-C36B50F2A0C9AFC456A09AB0953A983827CC570C3FB08317859A9BBE8167F876
-A744DB4EBB7746FA16ECE4610055A35A08696A78B27B9198366FA2A6206332CE
-C0CAAFEE4614B533A9D3BEEC9B8F8C13B475657AEF597FCE507704675EA219DC
-B350AF6BA3666F18CAE2531D78786DDCF57A4F4F12D372C9506B8944DC003A45
-A1149BE50F318CFEB619CF277A387623DE238A4A856BC707D19599FFDD1DE0B1
-D5062FF6DC6C279E117DD53F8C642B7E0461D36403A86206442410EC08AC6BEB
-9EF318CFC9B16DC39BC254AB31C3D9516187AF81B5A2588A8362D982D50785DC
-BE4EE2CC4E331EEC9110FCE8D18D262AED1E603825B546027D8895A4184AB49B
-6A1471592A7D7982F88CB3729D88FE543A460B3D22A466CC890007379E4010C9
-9B44A45868C1515C3F83983B9EA396A0A3079DB7F3760F5FC65F20391BDCDD25
-6FCDD09C0201E57DDA12C152561D3B6D8D467A15B9B82D58554164E661591D7F
-604ABDF37F1860FC2E08521391DA3BB2CE14AC808E18C9679B6F71D2C39F9F61
-906FDE8114D1B7651743336ECE541C9D98E83BD48C9A42720625562E371D89E2
-ABF50E925BF879BC95D5831C5420B1732FC1329CA5508F7517D819510E7D75F7
-9ADFAEC110ADF216B532B7C2F3EEF1C79C664E3919B693A8B88B2C4079A3E222
-5A8AA36205B087734FFEAB10D1FBAFA1FB04CF10A269C36B114EE2325E173207
-103312B15D3FC60CF8B4D42F46FD36A4CDFBC6CEA9E1967C19060CE817338867
-C7C27BFF13901E44329B80EEE4524C4C306C7B8AC2E572C5002C2EC691CE79BF
-DCE16EBB1992B0AC8AF106000DE0657EF6833EC910AEA5C7E6A5961650420BDB
-407F15C8800EBD140C5A10A94E10926FCD387A35DF2640F8228164FEF3598989
-640DF5ABD9A6ABC6A502887CF943E7FF255B43C2E4B1528FE6D9A70B57BA1F8A
-FBB59E079991468A8DFEEC37A4E57B943696439307D026D7866EBF4720893FB3
-4077A9783B054DF4213189BD10FAF1A41203634D083D7B2C10880E6DBEA9F551
-00976D8A89A480B3B69C021AB12E357708162ED89FA44DC514FF9FDD08C783FD
-D2E2B302F26DABA2B9B0CA6CBEDE960AAB60482BD150A4A8C536F9A274F2F317
-288E371D40745D9B37E0BF1EFC4E4387A161032EFAA51AACB236CC0F72A15203
-5570ED165D3B5664BD7E22985F53A9120826F1B6B32AB78B4D58AAFD958B3C9B
-0CE52F477A86A6C1B342D1CC12CD6A8657DAD2DE07FD60C756B0DB678BA8627B
-718C459399C34391C94326407BD44549F6E6BEA3097E796F9D5567A74CD3DD06
-CD66C78C171434C4D8D071E6680047206AB5B0700B8958D9990102E6F4201FFF
-7AA8A4F9F268F2E563E0A84E3447C5E7AAFDC681BB3ABACF428B39F4DEC69E87
-709E1E587A9291818C94A400AF2CBD3BDFE018FEC68FB52E8AB97384EE700D45
-AEDBE0A79875084452956D3E8D08695D5CF33DC65A08A2E0CE49846F8D658B1D
-290B6590590744C3BAA07B6ADD4495F84CA5EF2068564BBD28EF31E99B3EF96B
-D4DA128EBF30B5E71287EF4BE6F11F3968A6AA9FB8E039024BECD94783DEDDDF
-3E502CA25E421DF43503147F5C40EA9F64B43EF05371D7D02CAAE4BF9C3068C1
-0E4C121DB30233561855CC115A2F1C71205E13044BFDEB88A9A26FA7DA776760
-6F6232121EC7A05E952E3EFEA5C9BDF95544F47FCA6F9D49216BC1E6357FFD14
-FE08D4C9F858511333BB1391778D5F8EF4262236A3121E7CFDCE346A11585A0C
-ED8179AD3523C567A694592DCF7A738AB11BC911513A9B429070B632A5AEED18
-912DD44E8A951515C25DFEC549FA08C16DBE0C080A0741BB722083EC4D728B63
-51EF23AEA4D15015E4803F8B38EF5D7A4DA5887959AC0E1EBEBFEF3E7103D66C
-0D1C944094B48153CBECA0CC877300D97CFC241FF4C5BE3BFAE5D9DA8BF64E3E
-8F8A7124BC2A8F690503275CFD9754298D6401ECA1CEF653EB7A8BD1E8C27E63
-09797587800F513BB09F4962EFD8A548938343FEF44114E632D7D9F305FF7D9B
-B043B271955E971EAE369CBC1A569B673C636E1F3E8BCCC9A7EE73745BB4F6DF
-63E80317AE5FDBBEAE0AB05C5707910CD183CBAE9443A82D9C622DDD8C77E236
-4337FA68FEEFA8D6ECF883DC485FCA75F79579D2C3C40CFE131BE8A25BFE360E
-9BF74B6F008041D1DC288BFDC72E7554B9C35A05C802FCF91842CE6D16B35A17
-E4486E436A0C04F7D291CD06E87C7D581D4FA8D93C12F5FB46901264DF9A8491
-065D87BA1A715E107954E99896F46315CF212205CB224C91E8E67963D36AD1E6
-1A400BBB3FC39A1B94A577FB13B3EC5D1DD8D069FD2B946E6740D21D7FAA834C
-6CA596D24CF483EEED47AB8C11BF7BE8C186C112964DC28327C204F27B5242B0
-A62860BA758A6F57287D2F8FAFBB95BA694434C5E712A61AC48AA10792B51530
-7B90E890483101DEF6EFF5D6307CC24DB5D29CFFD204D43CBC41F30BD1940C80
-6BABE56764FE8FB6D14DA7B521255BA7A7FB773FA937D0A862892EFAA8713541
-4C18EE80297873AF7194C73C4AF15EDC9E394C7BD1E6840009CD40D880287C33
-D21082789DAB3E97A9A1CEB69139DA7B1195286914CDE1568CA47BB86F33DC32
-AA54AA2A59002F8E71E6592674DA1699E70D1B47932F068278B7B27D91703059
-7D85FFB3B8A554577E1C6DAE72F6DEF4757F62B9C49B070FCF09209BF8768C44
-D9C410F015DFD1E06ADAC5D886A2C887F83AB992FABAD38EABFC4169369BAE6B
-0B2D01785F129E1774EAE997A399F025C8C4CF4922AD2DFC9ACEFDB302791EAF
-D49F3B69B612A2B62EFB321E9A19406F021A514E6F503A8D0D9E349916C2C170
-F000C0F5C933396F8083413D5B5AC0F92E2FE4D552107D2DCADE18148C5CF45D
-05CAA1F51E0E00AE0C0C947E62A4BBB46A1797E3D734CD825156C60DC85E23D7
-902D68CC9C70611B37BB0EEFCE4940640D53599237EB0553F689791A736B37FF
-2F80A46C8724829E24975EC26AF48B3B1635BA37FB93B11B5B1663FDBC3E57AA
-1A741DC449EF31C1FB3809AEBA79424C2A96FF0E7D8772FEF6DC790177CFF682
-8F3825E325A61C9FA69E48BE691EA1D0CAEC56005764DFFFA6BD28BF4CEBA8BA
-9937703BA66A82F00AD51ABCAE57A0889179E5A8C4567ECAB71CDA45D2F466BC
-2BB9BE3DC301AD04C989EC67B9167136E38EB9B7BDEB8FDF84BF10AD349FF6D8
-ED5464AD98824105280822B9284F2AD285E05CADD239F64E32777275DCA340A6
-9DE9E99C12B97B9FAA8CC225419661542EC0D6D9AA8DDE52172233EE8498075C
-1F2DB1CA96A8B97209B24CA18F8D65D9D0AC7281EED9CA9035FC8DFD1B956772
-5DD851936729D332D4CE9951F7CEDF50FC5D08C56F4FA5EA38FF38C447C01ACD
-A462C73A1C726563AEBD55E9801B32586958C727C260A5549BDC25CE2B98FB38
-BC38110F20411E2B572E79552C396BEDE7230E9F677477682DD5721FA789C4AD
-A524A520DF586772C6406685C5FAC5F8C090357F38B8139DE9D4233A28574BB0
-B20E85EF2405FC38C69378EAC55C8C2A18E7CCD2DE3F6A2E884CA35AC561F9E5
-4055C29334DA2A5F4486150C1AF0B131DFFD78F67F4F286E796E82C723E6186A
-6256A59680A162BAF502C3D06BE15B567A9FE32D3DBA21B4F074A3EC20969D9B
-102E64B8A37A238025DDD2147731924ACDD2E7F2985DAE32BB8C6639B64CDC8B
-1B3B847B7E0BA43022F9212F6B80A6C1E0F00C4FA97E37F3BC26B7CFA0D4A511
-9330625B616C314F926A18D5AA3B37DFBAB3F1571CB4906FAB3293C24BDEE506
-07A5695CC3904127E4291E2F19815D7F9C53F5CB1A02019257E68F150513B75F
-188CDD36AD1AB18823951F5237A599B0CD3ABE320D2C2797520CF4F51AAAEDC4
-1169B1AED761B16A25C1A9423277FDEBC3373497004367ABEBA3AD233FC8787F
-92A4A4965BF5FD4F5F4EEDA82EEA3BED70B0E5A9B0998042E30AB0425216BFE5
-8AD806CA26F1DA26B41445FD9690E6E04A86D45E1E2CE22E3229614F9C07F585
-F57C2CF04E830EA2C8ADD6E126C124F459D66A1E575E7ADF7C5963FC3FE74643
-F6F60133CBA6ABAFD3539AB858BCEEA803D5260F0DB6E23D7D1F0EC2FB47A98F
-2A9E327B415BEED3D0CEAB1A2737D36C2E3A3DFDFBC0D75A9A2D251930FDFD5F
-7B9170FDEA176AF97EB70523673A39C1676D113EC7F0A760FABD6D939ECD02A2
-8609EFDCDAFE070D0526AF58883B9205E11BB726259FD97E6AA93FB05B296080
-DEC8CC8655EBDCCAFB6BD42F20225EB34A8CE6F881C0600B63AE58CD3E91927B
-705262B48498E76901EF7CD8A4607FD7A8BFA4EB14A3A4E78439E074A3CD1B6C
-56C63FDC56C2A29E1790A354EF0595657A022E686C0BCB106A432A242794C869
-3B468E7DBC9DD8974EEFFDBEB21AB1FC4963E9D70B7F69B62F6847628CAA171C
-E86C0D589BC6F584C5A6035D375D215FCE2DE7E03640BA7F2983C1FE2EFDA675
-44996DDE255EDE2E0EA1EA461B178B764066F0738084D1DC0A717ED3C5E002BC
-18FC3C6AFC5F415A25AFAFBCDD5E4E304EEB56EAB5448BAA447EA9B912B725B4
-CB0E3DCCBC333C7F0944545CD7C06C7927F2715F2C32EA4861FF7EAD682D63AD
-6FE869229940972740C078A9B14D5DD30263F690ED7C4AA1BCD48546467EAAEF
-53F205D24EC5A8185B965725E433E6B1F9D829D09D3E32186D7F069B05ED3536
-AE371CCF2A86F507D775CBBEB073703530EB9C13ADB6625AE485F47FC5842D64
-79074FEBB50E803F77809076725FEED43D4107B01B31341D32414FE87CA93A23
-2621F7264FFD3EF958CE17087C76C8EA88C1D8CD651090F9579C11584B59FBC3
-4339692A52ACFAFB71F8F9AC7445AAB7D6EBF9CE4E6D5847F1348B84DC01EC9E
-14659686F6C1F9C4DDEFE3FECC758F22B62DE54BD2CE3199E7B73BB7FB00D673
-5E6CE00B063FA54833E574320107613502A20B188A7649BEE66022EF48F02370
-659D37403C1D2BC66235B01BBD898C085F7BA962240C83ACA240289A57D14FC5
-E1126951E7D4B3585A3BD1F5CA63F63861F203F4893B95ED75102449DBCB8C9E
-26092452809C6C55B1960CCE65C5806D5B1A3CD8AD1209B7ECBD45B2E663C318
-4F47A682A200A866D62D909D4A25F4B1E4EC07DB0EF30AA950563BB52B201080
-BB6F6CC7BFF7BD8D5AB947E975CDFF7EEA4C234CEB57ECFD51F712AB681C51C1
-CD440E61A48A339F7BEDA750C7986A870C53E1A42B2EB9575FE127A4344B2F3A
-2925721FB1C840973D28C3E490DC2DFCC50E7D5B333C486E8DEF33A08902AC1D
-1AD15691AE5C308DAC6E9E4C6DBC8E91A0E62CE7553F7EE677C236D5FC2AD64B
-93C61D22E39B21A94A5FAB0D1159644B5895C7AB28D67F04158CEBAADFE921F8
-708DF7780BBB53353BBC356C5A30B1311DEBF3032667E6F58F3140B500BC1389
-2E268107E7A2DD447287EFB49812AA97253A993E155A0A03F8C59ADCDFD8E677
-568B69CEA669882833B1E74B658F756CBB2F8CBE47F5EC60BD15E198A3C3F600
-3CFFF12E11F7C18A38FEA39D14D2B2044702AD28B4841B7CC4DD5FF15A2EFE00
-B7977EBC290A82EBE2382DEBED2021151A954B2416BFFC75CF127BF2A4AFA2F9
-94CD77EA8F7918AB471D33AF1EF480C7C067FDC4CB8122C6F55C1E92E7AA0197
-82C1DE1C0610903A9C8A4A6B4217AD559DC4E33A0E8A3801CF31B0195AAB7D77
-751B357EB2ACAD4A52B06A0DBED89A2FC0428CF99FD570B4E36575A35AED7F28
-27C14CE9DCF1497EF8E0D0A7C58C00B1BD12F76B50FA3FF98774F0EC9CF92717
-02E79D948D45BF5A2FDB5B5956AB31C2833C381931C002741B669ABC0A20DD35
-30F4CF3D0307D145E90DEDB9275E6B892BCBD22BCC95DEBCECA270823233BDCB
-85E12C13C7EAC5590AF06926CBF83EE4E37B98D1105F04C1BCFAB78848BCECCB
-CEC7067C7809F30ABD4AFECB1B88AC31C769BCC3FEF5F1F503A1EB3DE899E58D
-368B0A1E545C50DBF0427A9CE238285870A5BE619BB212EF6EC7E417CE1A0FEA
-DB00A94FDAE477DE1F39C91160292620A5A6FA48594FFAA1DE64121864295E14
-C4D5096386C52F99094C2002476C5BF383BC0C55FA377DF0023BBF3F52D27620
-2F22A07F251551E3A31E53ADE4F5D5C9C1EA12720D95C6A0896D87FE2E703B46
-3004D91E86F41559987DC5763EAB5155DB1F8320266A405A39D6E274A3D18C11
-40D21954A786789F673BCD0FF0938DC68421A2BE201DEBE3570BE1DA4911BCB4
-9B219582E3628E1C4FF88262898D160C58E9D0D5A86571CE87A0269977745E6F
-49652DAB033108692C9B1C220EE07F72CC52BAA36BB1D7209B1A11B2CAD3CE67
-4F14B87DA489C2EFFE0E2DC1A2B6B05A8660D5DDE1089C7E7C899F2A528A6CE5
-A025BF973D8959EF4434D2C70F77D826F85009E5F909B88233A8CE812A5960C5
-05243F44B5355AF815A5AABA6511F5F3FA2B29F37A4E29EE575845F7F05BF087
-5B3AAE4637D0A6908A5086756B3BEDE605A718F5E5B47520885F283C0AB28B0D
-9F277CE965E22195CA1DD4A75E4DE0597C374FC9A0343BB87D675D94EF9D87FE
-89ADF37F61B9168047EF1A2234811CAAC507F27235E4634CA4C2B2999A575C69
-3FE19422C170F8142F3DB38AEE76D1BC4A8C2328E987CEB840CAF69CD0F0007B
-D3516F7228013D79C891BEEF835235CD6920FCC6A604648570277F104287D6AD
-75511E5D835319E1933FF896CBCC559A5ABF2572C430B8EA62ED314DED16C2EB
-A5D66CA97EC43FAC0520A3295650C1739D91539C99169A3592BF84E8BB378883
-8B3DB2BA623F01524B180118CAFDCBEBBBA3A760BBBDF2F7AC62024B298166BC
-534E7EA23642DCC4A800A0D605D88909C1840DFF31E8E9A20EAE691E07010C0B
-7C4386507038CA310ADF5A715B1525F796BE864DA5E0B8CDCCBD595D7E31F9CA
-2E85E80D313BC9DBB3EC41C8FA1632F0E75F63F137FD5BA01BE67A440F81A72B
-94A1E913CD4474E1C77A3E6B81E5F058BF583C6668A65082F60CDFE05691ABE2
-4D10B4D0CD546BA8638574A24841BD606BABFA018FAFECFA2F5D4293373315C4
-83E6D6B36B15D2CCE993C19AF2847C459A9FBA9AE47BAFF41CC6D3ECCB692860
-7C1EAE7B393C5690B72B5D4C6B2FAADBFC702E026ADEC06710E7592CD05E3D72
-022A7E117856F8D4644122045C1478728A48CE386D9A22F2C653C6462D833ED3
-DB934E4327E69C9A625200E215FD9A399779DCA7584ECBCD0C4C30E0A7DE7EE7
-941B838664EC4DF49B1C70D36BEA5FA0C08EC780AABFE652EE05C088B4B59BF9
-D794D627FE660D813FBA76A9B13A216965C8D4ECC31F9CC72FF1DB04F55BE4C5
-9312C84EAEDE62E6C9BDD074D38EB7147FE6645597413E8AC10340AE96D4E84D
-14FBEDBB96EC767268B7F0D7F17FA69A395E7B088C43CEDE2DD934B96072AB36
-BCCA43FBB6596791FE9EA006FFA4DC3E28384A124D5C5E1C1640164559FB44E4
-DE5B1CCE7962008275C41EF90DA2FF73BC92D37295DA4B47EE7663AD3FA3081E
-C6541F337A35F616F831B5BAF3289B2E6DA16960DF72F1F03F19BAEA35F8400B
-A1ACE52D96A11FE3A368E476C5BF7B5466929251A08ADAD3E2034DDE0B9CDF8C
-24B1B614C42EBAEB492ABE6667249F53C35D655D4536CD086258538A407C6394
-BFF608509B387040144662A2C510522CDB60B1C44C826FEBCA5ED65FC5B9992F
-7053C423D8E9FB4B2A92AE3E373AF9F979080C4C40F2B581A83FFA750C5835F4
-17F6630E3D98EB28A37EB425F1DCFA27F4995605A82BD9F4C3FD26A2C6692B6E
-C7C3F47741E0C8427FA2511D5FDB08F03555E7D4B2CFE592EF027D7FF58199A6
-3C8759C332C66EAF33156A1C3276053BA1F5052857F1F01F5147EAA70C126912
-9D54B91270EE22DEACBFC154D028F612E7D729ECD5D4811B3B648E4A13112FE2
-3ACE506353F913D55845453B85747DB452F0CC59FDF5220B5EDE973D34537180
-753DDF320DCE92FB09449F685AF03D72F9964F
+50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB613CCEAE69
+BDDBDABC60BF16B61C044A68AA41968B22CEC6F3EA7B0C02C44ED2BF3957ABF8
+B03474ED11BDB07B69BB517CC6A6953FC1732CEB1D4BF5B6C27F30889B4DA0BE
+B48781C7C224795CB655BE03CC246E4366C918F4A1B8FCB49E85E299B923E95D
+5711E49455770726136CC449420520807FEA21FAA658A4076ECAF1B065107CDC
+ED0BE922F22A283E1AA2A900CE4D5F55259C475F1868A7889D46DE0D8E0F17E9
+14175EBB20E16D9E5B3E1CF776F28CE5BD16940334685862F9A6EE0B828CBEB6
+EED4F34ABCB56E7B1D6F65C94D74F286416836E5B4C1CBE19ADFBEEEC3FE7CB7
+21CDB89A4FA18C33B7E215591250EE5F5FB888624010C7832CB7AA7E088C7B61
+8AB01AE7963B2C511344B963A60C59542AF7D88096DEE782C9EA80C670966208
+020786A1C0D0C845E08ACEA8F075F85394D3D923F49FCF38639C1FB1CA0BADA8
+FDDFB7121B0E367353D6F95BC523C08C8DAFDBDD2B0FC9230A6B7DCE6CFD27D5
+DEDBD0380CB1F8B0C0852336BD5698367C6F8A32088299443570141E0E09C31C
+BFB95FF1D599611E27A00328566920B4C2006BDA2CE24FFBDA8613B2C5AA62B5
+BCED045B3BB89C5468213D249D7B287EAC7A04C5A0F14FB9CC9ECD8A62083EFD
+D9BE224860BC3044FA07E1E2FAD367C545DC5B73E1BA876520313A3A5D193EE9
+1B5B27FEFCB04D406B3212105841A1339ABAB9B0B0767608DEB2ED7048256DC5
+B98878CA93CAD7990F658A2DBA54048E4509D27BFD48032D93AB3765955F6D55
+4639275D229FEADA618AEC2239BB1DCE56D1A456EA658FF3D7B322F8266ADD38
+41B08B80904F650229709FE189C98071097143B9E532C3DA6BE556856CDE900B
+7583AF6C10CA85699B2447C2EF6591D0FA0074D810AA328170305E1F3562F2A3
+4538F0D0C56245C11ED240E316DFEF64FA1AF9C0E64BC86782F59DEECA197B4B
+EE38625921D4693B38B343466F10E4C9E0FB3DBB8CC417FA7696AF9603F732DD
+7E719B6A6BBE64F4FD78C4873890D867236D82E35ABF102129C9C9DCBF9715C6
+0E969DEAFBF9BB650B321CEBE6253183C2EFEF6B6BC28EBB6F28AFC57B22F83F
+AA928A5CA96DE41EB9B33C6297BC0BE1F63472AF7CC02721C31C314C704EEED7
+9ABEA57556FFD2B367D262950D0BC885F1FCC203C5833022484B72F5C59FEA3E
+8D2738B923349F0E44828DFBF4B9068C9DA80B141EA7C9506595B0A27A2DEF90
+EE785F8AC6F0629824F2F2585D22E6928304DB7A5CC8B3F5126D3EF00FED1C0F
+1AEE437ABA4200200849E5FB8A1B370B0092F0124E30A1086EFE05D0E03D3905
+A058FF054D2F6454D784BE414301CDCBF4FBE6E340A7AE8ADF3063E978C31686
+242E19A023BF5B0F5744E09CC2E855007C264E6CB13C9924E523301D7FD51D3D
+7CBEE8C1C4095007221DFA728507A079B62986817369E9A91D0221160A3F452A
+9B827DB0B0D5CA1C626CC7844BFD97C90F80C84AAD4D34A0AE7C75DC019A0E4A
+33ECC7E9F6B1F1678B1F0F3AC52DC46B8AFCD6C5FA88045F932CACDA8FF33598
+EC8066C6E997CDBB4613917C0B4043F8A481C62E18822B5C77A2911A8FBAB2BB
+3FD35514119214174C4DDB4CC6CE20BBE8B077A797F123B28EC55FAF52F65FFD
+B147280D82F362F1AC431DE0AF87E8A0C307D7B5E978340B606689EE5C3C8911
+CE65B607F02778A4BD54984EB3924420B0FC9D624B7B7166B455AABB0AB8A7C4
+EEB2F66A95DD2E72B249D83C84C3075FF365B26DDFB7AEACCF2A048BD8C80C41
+88E415BE80BD89F313F72C3BA490A720158607A71BF92A3885116A8A303B2121
+293946B1EC5A085F034E66B1BEAD4B859B733282192393C6E3D4CBD194153520
+FD429BFEF266BFDCEDF8762BED7B9F1E6A11F41FDE053DE22AC9F664DF870C30
+2E0089EDBFABF28CAB55B4F7B92C22F0DF152397107C2AAC18C9F4827AF0D2F1
+A1B1F8626AA8E6C52C612914E092E8C3002D25771522A1B37152CDDA553C1F2A
+44EF83429495A940A14DDA3E42B5CBC5AC55E652A7CD43195DE8803413A6E11C
+16342B090004266C7126B9576F68E071EB211BE824A154889F4FE2DED93896D6
+1C818FC3F9ACBC28D3D2CD47D94F685AFFBE83C045799F4A99C242A449A33CB1
+1BFFEE26334ADD624111FBBD9A4DA9049555FC1D05D3759F1C83E7BAB71467A1
+057064C94135C618CA08D98EB11A42EF8E4EEEE6BF436663D6C2173667B3BAFA
+77318803FA93C51971978661B06AE62F5A9C30C35F2E6D05334F0AFD94B9C84C
+9176E7DA1FAE09CD214EFB1DB44649474E3EC965F29ED5709CB721A1A17290B6
+B2FE92E7DA02FECA17A70382FB1970FF678BC4EB254638D9D60314C524AE5A74
+22AE09222246FC45237EFEC7D8E151CEFC63F734A626D896A47828940E76621B
+C4D734BBE10C116774A7C2E748AC2A893B34782F3CD9EB0C34079B72A170DE68
+8C56D67458FF6932BC6796BF521668136EDC5A4623B55F833E963D9AF91C697C
+85AC71E7DAECA138E9471C8535A8409122C466B7CF6F5BED3B154D055B79AB5A
+E8D5A6D4B11BF71B011265E411C2FA0162AEA0BDF7FF68FB60DFFD0E0A194E19
+B89E8CACEC175F92DEB8F634EBCC667CFB7FE47FFACF66990EFEFFBCCFABCD6F
+B675D4F8D6F870A595CB4F95EEDEF12BE1220BB16D798EE58A06F7AFAC00300C
+29CBDDED9CCC72972E4ECC095D5F2E0EC1890065F34A848491B128EB73F86204
+D5078938337EA05B8008CA3E57139408FB0B39C057C1939B78108F4C75322107
+79BD61078C393A7DB042F0DF344D6B0A8C914BF8829A156D1CDDE51EC65F6B7F
+A54828C7A71029343EC88D8CE8AF98DFB1B640CB1A2AB22C7721F72508D2179E
+667C8A5CC87E57E07BCF5BEADF7A8B836B536A83BA41D3D4AB541312D45613EF
+A083BE7926DD8BD006EC08FEC6D53DF6A281C79B82E3C5336B165511BD6AC6CF
+0621414F9F61863B5D147934BA875488FED09F1FD9867E35EEF0DC61776B0491
+B7838300390E43B8C7144EE6999D1EC1EC9188A9AAA33E5B67A1DE83552980A2
+359137C6A689F5C0601FAA09EF47C9BCC57DC2A72C2838762C1FD23D43434354
+6973357CD871FDC39C4D77C267DEA96BF9A9AE78A70CB709C4B928D77DB05C03
+FC8B0F504D948003DC9146762C510D21C144680F0A0A5203996CAF2936753AE4
+079E0CFDA5E03E6A482F11D663FC27D5E8B6A73B8EAABC3069C9B5D0B1E01909
+119B2560B70ADB2546F622D5596AF276B6003BDF456A3B4883648A1114191BC8
+585D0C2A712CC95CF5191413A5D3C4A4ABCD40F33ADC187997898C93AD946103
+862A8E8F7509BDF130BCD9696619181C19995A570EF3AC61827123212F96552F
+285D492510CE4C260F73B741EB8A881B139CF97922D2BEAA6EDB151343CB6DCE
+74FD202ED919C816AA6AECA20D31BA94A49FBF66AA299FE67806C51C7D4DC88E
+A0DF9311445C92AEEED1A21C264901D5F53A3259691E300A5E434F3B8F60763D
+CB45B35EAA8E3AD00C82E0AE79F6E59ED544D31EA5112EE1B256111832E3D780
+B222DCC2EAECC748CFD53413E7B7BF60EDD4558D17338F5DA099B2179B5E4859
+404C296C3FA92BD458D4A18894F15FBF42B1986E2A7BCF8C1D7C25C6F17DF170
+6DF76813852BA3CC16A0F9C54A836C75F392DAE45AFA57640BAABD459903ECB5
+1457F1E1AB898BF51FF34A578B13BF2C2192B3DA8C74197D10ECB0792E7FC57C
+688D13CD1D2B8FC04CC896E0F9CAB7C73F0B178B2B9B6069AE5D61581D6E4630
+342941000C556FA766664C9E4DF8ACD970A4E13498BD359F1F62CD7B59D6CF7D
+C5AB39CF1FEF04990E1B34C2B13C3073865999AAEC9931ECC6FD7E4505C2D0EE
+672A193FAB459F8051367C67C2F121CBE051CA9E9ECB45A31C41B5CBF7C83685
+B85C76EE1067EA62E6D77816601C4A936A4D5E1B3D966AE2307CB739F234DB7B
+AF00AF3B357EDBD5EC79D97688310803B58FDB85D85C669C4ACC6705BF1B8F52
+76B0D709DAA03610AD25727639EDB403278178D96C663569EF75642E0D89DAC8
+F3475DAF48C05E8475A010522D1DCAF78BD5E366CFD461524C5AEB0C6F8CF0B8
+BC08592C46ED2F6264988662330C62AF843EC740AFFDAB40567D85DD31B2D107
+C726AE7B36821421DE1559DFBBA7D8C11D537E944121EB2ABC28910FC4307084
+2321866C9EFBCA1A7EF9D77346E620B74FAFB3449AD4A31ADD0E6D7192FFF6A8
+44DC537CAB0EB595708290D7C91E3805EC664E3D0AA3152906A9EC957F2A57CB
+6EDDF1185D8EDA5D631A32EF2A7F2ADCE4F8FB15C3F8170EAD24B97803DFF358
+165D5C03528B1B92B9687DD0FF8E299A306D693C0220EC63C5AD9F515D0CFC78
+03DF3D714B670CE2C09020286E6C7F09A582FBDEA7F153CF37A748133F61283B
+537FE1BE8ADE8B468D8B68CBED4D2552F2C7A19B0E069A79F9FA5627FB57D024
+752893CFA39FF3ECAEC0F622908E683BBB50C76BC2815A46B5023C25120589BA
+00CE9F1E81EE2F0A448C235AA68A962789AF11E87F85FC6FE285079329D254AD
+DCDC4563BF6F82C76A27A512BACE3DFEC586ECD83D464ECF5499B1027BB3E71E
+60C31C77766B05B00B1833ADD7F9A83EE544A1EF42E4EBF7F5A7B82D0E318A8A
+03EB2D4DB9F9905D4B9A52BA9C5D1D2821821C57C8500866343A819380253D1B
+EE92F96EB2CCA3782DE6B16825ADF42B716154BCCE1106C1201C00360DBA1F8D
+01FCB2B57137491C17A17A7B1D3D1AB4F70BD5CC4572FE37E2E2CB4EA578CC8F
+69892616306B8598456B8F345FD49F58223C8D1B00752F6CE0D278277B3DABBA
+97977264D53A95A034E3BF891ACC165E0898D569E9DD9EB9A21F5ACE628FE6CB
+115DC17AE728337C4A184151A954B7C5F6D0A872CE9929A13040CD1D8DD92560
+B8D58CC3EB8E025AC7A9400FB7D8A827F7BE4C56EA930029ADF44078BC5EA389
+5782B7A3B04256B66CA866B65A2BD0A4300481ED9EF898A4881189C55FBB2B0D
+C371EAB5DC9294E2BE1F68DC70CEE16B7B4427AFEDEAA8C420B63AC524E5AAAB
+1C0504A2E9C5E601831FD84DA7C7A78FAE4660D1AADC38578A2929E6C00F611B
+FA966D3490191EB437C2042B2EF87A493D1D184AD79550D817830C0C680B75A4
+5946ED1B46E5D26946AEE0057BDB4BE9B23884B839890E8ACD3F55608B7B68E2
+27B57A662DE621F1CF6AD89EF74D8FE1FBF42A95D2EF01ED6DEC83E659A36106
+8320126AE91C2A2051FCA141BDD3FFF477E674916E058BBC0428879C81ED9914
+E83B9C47920BABC636ECDD8C59A1ADAD12C384EFE8860DC8DE04DD8F7ADE8942
+CA3CF4CCB9EC7A0372A5FA7364026286086B463383C07AEC413D6A0415E6FCD2
+7A96973CA85B116134B41C8F120B557E43F38D21432885394F0C83602276BDCD
+7A2AF8A16D0CA4FAC497CE0FE1D19CA1D40F314CC872FCDDE3F330D5C6342C8D
+4CB634ED156D7D5B0468DC981706E775E5D5D23F1F0EB7B1CAC12833B8CF7D15
+A8CC34E07DE0CBFB425A50E22B79BA064C25A31596B95132D0B597561B2986FF
+2DDAC35CA3FB7F46659D721EA243793EC3BFF6BE5074DFCBC0B68FBCCB456D73
+47FECB042B1A1D7E1C290CBE8EC065E43B0C2805E225CA2F9967FEE8AB286D34
+02ECBD45D4A1EF6760EAB45362D09D245BB24249FAF120B797AD8A0173C6238C
+BE9824BFCEEE1DB6F05C8930819DE5F4CE87A8AF60DA79F5E53F18F51EA056C7
+D27B63845393F348A36B76859AA36C506EC5FC1419AB11CC41CD53D11360B23B
+8D520B860742104EB334F0D4BD01C94E654ACD4E7D88479D225530353FB67F64
+9865A97A10BEF98CB97CA3A3C9353F23F939FF98032E1AA6277536193A94739E
+35419AEC8D6CB44E85999A042E19EB1E6E4048323224760F610C8BF0E376F341
+2AC4CE2A52ED4551695F949FCB3C618E90FEF1392141B57A7B19CCFB57208A61
+C0F6940C9757BAA58102DBABC4780BCFCFCE8EA3CD9722FBF6BA55A4A6993A30
+325B2B9A0AD91CF8DF367CB979FFD4631634371853E3A5921069D464ED85E350
+6FBD46403428E74FAD68A324FAF8D13E896F336901795D71E5D2DB89E889C1BE
+C522FEB36C61D7E0E4B1B0EC693A0CFE4107647615051CCBB7DC16E97AD1BA35
+CE9A096DFF39786C33DA44E00552A2804A59841C5C22B18AC531BB9C0115F96A
+6956067574A462E428A5B43947EACB821D5215D5BFFFEA5279ACB6C5A31AE4E5
+0C02FB488E26606B36F1EEE1438372B7316154F65894F5C5E822C5631EB39AF5
+4651F131149F16F47567F97BD833D5BF3A8286814A8D73CDDEFA00A0EE22B5CF
+83499201F787F87DC5173DB57C12CAFDDFA8FE2953A4C336F13B2CEDB2315BD0
+0D4D63BF1818958DE6CE23B8ADDC55BAB29E1FD39DE94E047807FF791E40C68C
+573EDF6D22A0C6975AABC854543627201D22D817121BBDCD9F5BB0288F04940D
+C663CE143603B41392303A955A90CDA082899ECB1BA3591EF47E6AD1B5DCCB3E
+E6E68CD54310D21A0E809E957E6957D0004DCC386BC45526051094D82A2ECC32
+BE893DD5D32981AC1C3E5078EBF8CF2A0828B5B1719CF3120A6C767FAFFE68A3
+B57B6B5E1DF30B714EF791BB3C9B3D5D4BA21D33B3A81EB77757A3BCF842E15F
+1648EEC4655E10DBD61F2FAC6E96B96271B33B5E58E7CD380564822CD380BB52
+2E63097B912F140205926D11424378B8F134A85731B897747B128B7770B65A98
+1D8A8F2582E83F2E7BC0140074E1BDF96D5D8B16872ACA21BBCE43C52C68A331
+D491CA8AF687AA57BE80FF6F040335299E86BF7CFB26715E822384C7D2014281
+960A0C79CC7E77E4D6CFF0F5B2475E529BBE3464729B6A33DDFE36D26FABD8AD
+BF09C5599E1E33170C6AF8367342360E73681AAF946D42A3B661B0BABC9A3874
+BBDCBF3AA7C134D0ED3CADCCDCA0260E0213C3CD82173B8F544073B535E2C2D3
+D837416D51BE7FACE789B72BB3520FA7C8C80F52BF42C1862B309775540F6957
+1FDD0D5D6E4CCA987FF11577F6EDF7B3F044D3995BCE794CCCC129CF0BE7195F
+0F831289C1BB3C5C796F190138F0079F50C894021C27FA48D1FF4D1472DEE1BA
+EFAE61AEFDFE4F8C28528A32EB41B392E09BE386988BB4E92A83B1D833AA9A52
+2D2768D56EA0066017954EB9FCB2766BC8EA0F5A1BBDE25D548DF19CBA4A3A36
+28592831BDBFF6A7BC98AB965375A1316672FBD75D5D524B5283DBAD1084BC8D
+795EA03214D8F931BF336CB1520E3009C231734688AEEC98BBDF173C8FFA7DC5
+5F23ECE810811B1385BE7E7AF5B2974E7D80A1C86FC88BD6CC6A815B773EDBE2
+48BA5C3D8918C8F5E53F65605A574CDF99C7B29E72AA548C07EE3B1748D74F39
+0E201ABE1B36F9B7F11CA7B2869B7428C05BAB0E61D8CCCC3BBB497A5AAA2A72
+817CE375C1E68799649C6D6BF1E0CEE7974CB24DB8BFA82B786C87090347DF43
+A10532DFB6115038479591C3891293C22B33275976D269F5FC003984E815600A
+52940610447150D5BBDBBEFE6EFFB653C8A1DFE1115FBFD129FFE94825F247A1
+9F4307B13CEBE73596960D611B9E6D50B6ADE781FA381C48A73B47E2528B7D78
+2336BDA5F55CFBD3DEAECCEC9282C72D4BD3FEC0B6BEB5FADEE8D3126F7E8017
+38324C6C61677676006D66782B3D0E707126C40F8EED0180F527608176E29EED
+28E61C15BAE9D007C88B309530C5CE5753A568E0C94C1A4869D5457C9D043C2B
+157ED1C5EC2739A93755DD6FB02B92A5473FAD0F0B0C3341CAEDAE18E54EC140
+7A5B7A00721E495AB860EBA8DC36F25DEAC79B8DB57A7831B0542022315F34B4
+AD4A237617A221B09D92F934CE82405FB48564BAD05C3009AFA4D011161474D6
+2265A735E34607D45E6ED94D94FB1C901D6B4D6F4977B9BDAF1CECE6C8B65193
+C4743502A005ABF094249DEEDBD34B49810D69AD90CA0D950760E6D6AD8124BA
+A4DB0FA3394C7A6F9435B324C119D9AB4FF2A41E9C619F31DFF1FC22387D42E4
+3FA8DA47519DC003870486A139AC7CE1DA52B927679BD382975CEC601F1B01E6
+5ACFF335B326D80C6E6586C7677C4B148CDB3609248B3437CA43106C863C98F5
+0713644D81BAF67F2F1F3B3D67BE586B693F93609BE34A9CE769FD2FAC80A0FC
+68C5B10E148D1616939CE8D1AFDE025F8238C81963A5203128755DC399CFBC49
+AD4A8F08BBD20578151349A9FFE1D422DD1FACDD93466F228BEFAEA33E973A1F
+511028CAE3137DC36E99FED6C3719F5B0A8960AB6911000B18B0888226B76C02
+B77027A97C15D7553C3B71BDB62B5A78178C2F02276873B49438B3E854BAAA5E
+EF0A1B9D12B7E206E369F9E33EBB6A9F863101E72CC2832DF567A87F7452D5A0
+61F2177BD31C6D731AF564D1C0F058BF75E0B6C0AC24202B56AE2F100FB9D469
+4391D5B16874F1A5E4F0EE8FDA0E36B339D2D42D270F63EED284617670E01324
+D38D4EF3E92180A4F8DC2604B9189504D0FCC1F8394425810DD1BC4D233E89C8
+8284BCF502AFFF66A54E738F3BEFA7B4F51AF9C35575B1DC1EE6D922F0A09E82
+EE454ADBBD1DC0992470B0764332E312E2A3764217B502A9497274C5E2F13316
+46ACECBF93952AF579854CE0AAEDFE42584E216A93181861B66BC49D81FDD7D8
+3FA8FB05503F861A69254A5E21EB6CFF8855E7D08AF2B2D161A2328244F285D0
+E7876EC603CE837EDE0971AAA9BCAFB86329955E5F1F78A00E521CBEB22363A4
+142BDF69D408358C7C4D4E2E1ACF9CA11B72481B97F9231644988EFE3CA45659
+2655999007B7F4DA9EDDB47352519333815A28A5A53BEB5379D699CE73A0F6ED
+31156A41750753C3EB3EA6CB382BDC17702086C6C750286610CC7B0ED2009AF8
+BFA6460E643F88AF1A71744E2F42F92A6D5D0BD7FB2EEDE8EC854FCAB94242C1
+65634B2D10117CAAC9DB5CDEE681EFFE140810F7C9182162479C257972AA398A
+9B8B40286F9ECE6863CFAA33EEE37A20EBFB28403448D0019B99CE76655AE359
+E97D1B26861C4F8E0E17D5836D4AACF4F05AEC01EB12F45EA2964C6614FBD903
+FE930D67C83FA691F8F8241725F61356093B99C1E3F61BD69D63B13F748603F3
+BA9ACAE25A5820FC771547F1FC8EDAC3CBDA4D27C2E76F6A567B297081C51274
+29CDF072F62DE0B06096C7891F8A13542F44561DBF4E6179BFF1414A4919679E
+35E819B8655DC254C734B0471F61702D79E7D8D79861331A12CBDC0D1DF4472B
+0972AF27F184126C5CC24B5991549CCD9569C5E6A2536031E1BAD8D74DFB26F9
+F1B239267E44799A41C516D9949B03C76D2E4FF02B4018035C5DE91E7376452E
+D0A29D4E590CD69E3795AABF23DFB3B4A1C392F181CE6AE333C7DDF355307A12
+9FF9A1E357E5A8F0FBFB70406B2113BD7D404E6D7BABE8AB8D027A217E907C0B
+9D322F2B50F27AAA7E6DE95A14F16E61762ABADD2B2DB1BCE1A45AEBB423A63B
+2B64F2FA0B96FE37835F73A03358C755D55A86FA70E67E9CEB034F770E89FD48
+C41CE3D76FEB3EE18935DDF3A9251901FE9DA8F937F891EE181648F5A09E6AC2
+9317F5572856F1C8F1D90D6DC4E9CAB3869B6C30CCC58FE4F385FA5D01E5A1FF
+DA826AB7DF0D3EFEA10DB987D44DBC2E21E1F2FE3521CC3C1AC942FA5359B66D
+866CE1B7FE969A6F6C4F6E231DD9878D4EF3A166AE196F3A624E3E840DF4C948
+BFB315FC68F1F395278E6C3422930BC8D7AA293071B9F5ACCF3477FD797B2113
+A6605074CEC01253A75BF1E582D72E1766F72CE250AA62EFE25AB512C662ED23
+EB6FB19FDFC936D65668D143E7B63947FC50DCFFE5E3D825D15C0142FD17A550
+E6CE5DE77C765DC44866C8C85D0979F754B79C7C1BA57A45B2138B5A0D8722B3
+FCE9EC0915226AC5FA06C8DEAFCF132112010716D00BAA9EC84FAB149A86457F
+DAD83AD440A6D8802C2EC016E04E12BF6EE9B27AE6DCA0E047BD0767696D652A
+99F49C6E9472846023B7464E28B040FBC493BFFB443773A4DFF73A6464CCC43E
+3F3974DDE181F162A1E0F7C28D1EDB267E52F007212A82FD71432249749CEEC7
+F7027492F0C4AABCB20E217F76EB7F3F16B92875438271C88149B62961A97467
+9019EEA80E7B91AA608A9699BBED43FE5A937AFE62613BB7FFD4D55B123AEDBF
+A8C4FF6F88BB1DD3E42C16116CD63B6D4B47C6669233686B24DE774DE4E5567D
+AE75B64D89EF449AAAF1DC34CC9B5F6A1B380F2B65F8E4481956C911B241C439
+3CFF801B0BECC2F742E3F8DBFA7657B6BCA33A739913620843C97F94510AE3EE
+69DCADEE2775FECDA97B4AA73003413EB63971C06A435F6022D8DB74370D8AAB
+AAAA704DE82D50093BF6633F2649898ED33AF613B3BF7574C8BB76621A902E21
+7BF8AC2158FEFC7BC768F60084F4C3BBA86ACEAE575029EA1935F85B2E4E2B33
+3A176338F92F5CD578B1B90F2045B2104F62E845349B82784075F00A82085666
+014F7E804AB0718397CCCFA9328348FE44020223C6B9E4E1B8E688837A7DFA5F
+97ADA785FF999836256593D27B46075E90C58222CF1C22E4478004E1924F66F1
+EAF37DF7C9EEA1248EA56DC46DD0D126939A26F6B772340D6DA5F167BD75F994
+CA180309B1FCEDE0476F73C130A78A568E37B714B3B6A76BEB0C2E750F2B51D5
+295291010DC84842BDB34B1F969382FC41980ED8CFDD2ADD0202C7305C9EA4D0
+0E35D71C82B359B23A2F05
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -758,11 +757,23 @@ end readonly def
 /FontMatrix [0.001 0 0 0.001 0 0] readonly def
 /Encoding 256 array
 0 1 255 {1 index exch /.notdef put} for
-dup 12 /fi put
 dup 18 /grave put
 dup 19 /acute put
-dup 39 /quoteright put
 dup 45 /hyphen put
+dup 46 /period put
+dup 65 /A put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 73 /I put
+dup 76 /L put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
 dup 97 /a put
 dup 98 /b put
 dup 99 /c put
@@ -772,6 +783,7 @@ dup 102 /f put
 dup 103 /g put
 dup 104 /h put
 dup 105 /i put
+dup 106 /j put
 dup 108 /l put
 dup 109 /m put
 dup 110 /n put
@@ -808,129 +820,190 @@ EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
 ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
 7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
 C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
-B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
-53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
-E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
-3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
-9F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C1419BA3
-4389DED48DFDE7F78F8ABE3DA17968B0F16B18FE6B2EBCD7AD10CFEE23F4FD29
-8A41D3A84F49D6E0FE4A09C10E3BCFE4F1A53382F091A731F635DD00B2BAED74
-7091CDEEBF7C3B0C788EF6655601AF98D99CD87AB81537AF653AA1FB224DBCDA
-DCD99CCC347394C8A7146C0B6569E9C29445CDF0496D40D131862E66385569F1
-CCEC1D679D7D953BFD1172269492334C2E6F7AD2BB25D7875C848C4B712A6052
-465591F6EFFDF950BE484A6AF5D9F494135CFE0EFD1C7EA1C547135B7D12B9A6
-901F5B83A629DD6EB776B471D17FE8CAF7D7771D6CFC5C6E363B2B587D84884C
-35F40A0849067A7301255601CCC91F5E6AD802A556B64BE5196D6E49187E2D31
-5CFA0C960323B525F540281C33DC25A2B35103E58126D0A94B0B082C0644DD51
-6E248FB659F3F64E23C70187AA9B105C83A2E1C75FAA7B662398E31E261E409F
-DD3F844F2E3934CB26B79325ED4BA70C1B83B46E7EE9E9A5EC5E4858DB79FB93
-31BEC9C8842BFD56A981DD5C91D20A1C18A3B405098B7191F24E27BE212FAE84
-B755CE91CBFBBD5FE26B94C62565DA0C491F1EDD77F677D8F88943E77EEBA9BD
-3F7D4FCA7141CAE4509375D97E22E336426D347AB3C81C92D2FFACF867EAFB4F
-4D4FD4C9902B18C705A5A910906B813E3B8DA20E13436DB8FEA194C9BF6FF0A5
-79F215F8A325BB7C71B2B3C64DF8AFF3B99539618847240A1EEA99B1CAB2E869
-5D82993A88B36729258072E7636BA88877AC34AD86278760EAC5CFC573B851D2
-DA420D86CF6A178DB28BA30EAEE41C16E360F24AB5177775314DE2752078E256
-3B5ED507F043BC332BF738175950EF89524D104A05844CC7313E12F53148F536
-B912D04FBCDC093E8D3031EA91DBFD55FCB7AD49C4106039CA8324B46664EE2D
-AF927B27CB0064E7279335EE3B7A06E3FF4DD40BC5ECCE94526CE4E5824EF067
-8F1BA68D41F64355123DBE4587F9580B90EAF8889916255DBC1859EBA7DFBE08
-A79EF5063A85144AB250DEFDC13BAACBCBDA771FD5180495A27C118705AEB569
-EB317643A1CEE5BD68582FC77B776018AA68F3B49921F2D4F2A9306AFD8254CF
-DED8E8C338D73A92559BA064F446348FDC70CBBE12C19AF9993AD81E2BF60EC9
-D2BA72038862AA2CA5BD3CA0A4DEE85A7ADE4DF9ACE0AE57401C1C5711E7ADFD
-6EF5865DD053EE4DD7070F2C15E58331928581D26E08FEB08F9F0F4E45CB6552
-BC8FE3AA01BCD8166A7ED3785DA0D892AC25CC0493E6865E067D700AC8D7FF71
-E85743C6BD1A28FC0BEA869D6E1294BE31636B10D44EBA9A20041B5B38A91781
-A7BFD8C63D5484628F63A10E3549680F1556174B464AFF2BD948B3F9F0BCC6A0
-6D32B6256E3CBEC23B0E711C77CE83BA6776B3A88079BD445220FCCC063DF188
-666FDDD6E5B29CCBD94E6F91930B823F0E2EEB7CECAED29E49367BC10ED266B5
-FEC76C56C015325F38A9E81A02F0B622F419B6F1B8DD26EF8A79E5AF1566A6F5
-047DA4C8018B6B4F85099257E396D7A7DDB0B5658B30DEE6F7275E96A74A834F
-FF7635C53CD29598D31878807D9B45AFCDA4DE957F7625264F9726F0338A5EB0
-C4E20F06FD63C955A76B9C29D132CE9329B3E9DDC296F181FFB9A3F0E0FF5AC7
-50B3FD0CE1DEAC78BBE0F7FF36C077073733C172A9D69630550C3867EA1513EC
-E86F3570EA3F2CFF00F062A5C43CA182FD8338A84725CFD6A8EA43535A117147
-8313EFFFE803E979588EF489B57D208263A2659DDAB9B10517E8960098C55CB3
-FC75BD9087C2D216EAE0AE6146EC8D46B2004A91475C479FD547EE6361D54C69
-151C27346F8762EFD9D7C9970FE5F95CB91FB1DF6D51BDA86E20A97BBDD50456
-45A8EDB16CABD82E799FF6615B9D253A759CF40C128228C91F76766B639C39FB
-51584440E2B4B244507F6E5C1463C51C0EE65F43D8D70EC70B5A35D72F27CDA1
-917A4140B001E09753821E6E21A1AA9B79217738D46B1674C8B5785F4C2DFD25
-F0E4217731E193689141A6717A9B082A286F5B4CDF69A9CD4C1B11A5458F950E
-EC98E7CA3A7CD47433E7FC3498BC87569B77D2F7F1B0CC8B2D89C8F8F1A61210
-2571FECEE954C25E8648A1846B7AB78BB480C4335B4909F7E4714D7FBE685819
-9D553693EF13B078A52DB3BD35ED2271E5192C8655E2234C5EECE3B2F3C88D93
-5C76E91D41142207C159D436BDC85CD92B8FE60C70B6548344B86CC0111B9240
-11264BA8840DAA7F9C8E4F9854483EF2E5427CB33238662072DCB5066C35BD50
-277D1C70D40C5E9193D1648ECA0BB14C97A8ECD307D4784172F01AB199B6C063
-18E1C3D0D6C9244FBF4CEE66F61927A4665328AAB04B54B8F72E32802F7A7AFE
-B3315F861EB792631311EF7BE4C6A51304A64A18EBB6FD5F91C7D03ACA610A42
-4BAF1B226A832260EC3F01BFFCC5A298F6C97627A53671DB6EFFB49887CB52C7
-77FE04A8D8D5D3FB29CF07DD5D4546F99976A094332DE0D32CD2B0D44CD3E08A
-34051768EE542AE3270EE41E90A43BA8472D3A885EF092F27FEDD89F7035A71E
-74A96DE0F2FBD2E0FEE9EEB3ECE80A34C82E5A0DF1EE927F770BB060EB0227B2
-96DB5C72B9A7F4B53E0EAE8B9969D01A7CE1BD52E7BF71A51ACC22652D0918C7
-D6B79652005A265DAD3064E6305B670697C2961ED5C100B0DA023EDB53A878F4
-A9EECE828BE0A7E85D77694AFC91B7A825A3A5C25814600E29E1CD989D40AC09
-62049BB173DE969AF70CF08439D5F840CC9F0149F161E859DE30DF86295EB75B
-DB6F7B93F0CB2A2F8DF8FB708A29FD40F540638643128CF96E53C598CE78E124
-30CBE72FD0D2CC6FE7296E0B47FBE0236691C94283825E5880DD1877F706BE86
-887C210212C135B2242B2A62C030C5619D69A898703926F5043A4B65E22599D2
-1D483EDE6B124C4A7007758E5737F73477A737FB8B6D79566CCA600FFE07EC87
-E9AACE05613BCD96D6ED09754507A215543A64A0060D7A1EC5A062A7BE402B42
-7DA16E0A8D9A0C3D4709AD82BF4E6D7E765E0B7A11975F93B4C2299974700AFC
-37F6AF965B5F032A18ED2F380A1C729FB93473A790BD2847C539D5216A48B5AB
-CA6BECB511A9B3627E0589BB14B4C59A34B92D33C36F841A31418EBC3CD9097F
-4AADBC0B100EDB7C0882011FC4E5BF076A276E9BD73AF9AF03E0FD1571B67619
-41F083C1B635E7ABE2ED2D16E2A2B4BF136573EDB22CC84C3BEEF12A909DFE87
-6B31DB8CEDA2C56BD4BED3396C2414AF33443AEDE115B8B534BA437C706A1102
-367F7C8A24BB17DEB45637DA133D471ECA61A811828B1056035BB030D76693A6
-E57916EE9558B54F30BF79DBBDBB5B687CE6837001D7C79F2293E9DCDE4E02BE
-D9229D53F9710BE6247844285B8CF784A2DD33E1B0EB55A609E8969629939431
-14A2923ED9F6F0BFC0ACA17F1B84D71C101F8C8CC567BE97AB624AAA595624EF
-291EE9D09635175A210E5D2304EC26003D4D3734B80C513A3954195B4DDAF78B
-9D6B057C4D9975E499FEBCD2BE7AB15A7A3BE374B0EF6B2F4A4CBA22C12E1A5B
-6152F372610BFF631879CE5C46B901C5DE1ACD01E95A6003CBCFCEFC8E2B1732
-B928061BCBF980C94D0526028B345D1884934E20101B94BE6DB4AB24ED2584EF
-716B8C89CE23037A03B20407E6915E3F2045666C502B0EA31088C0E98C07BB06
-74A43F4C9F42B266F034AC47DDEC907CB418AEA343A269ED16B20CC413F6D54A
-DA073AFB184F38E75A591EF20F3A44E0CB7EB72B743DE3F68499FB8FBDF113DD
-A37F3B293BD769160E25EF9F865D4E3A09BDE492969976400D8678B2327E53FF
-7288305E48C52019AE3E10AB8C39B733709D252071DE1B31A0EC52388BD7A7E0
-139BD484E918CA0E7F84677E0BF5CCCE41DAB8D1915AE5ABF459512FEBA6E812
-9E0236E0B3C297EE0F8D9C1880D3A025C644E57587DCC946259572A56D677C74
-692B22FB760450EF1613BAE42ECEE1895D5F0A7E093411E32D94043D80E9BF74
-E593D6903A90E0783A9D3D0629EE09C57249AC15C6328A794DB90F101690975C
-1B71BB7373CDD9490929A0134123F2F2C7BC3E5CFC2630CF750B431F79E169F0
-51368B6D9DA46C51A1F58D23C0BEC423A5B22D2BCDE8DBED4AE8F4CA140366EB
-326DE1D323A00C972CAC9082DFC1371B734A4F9D7A1511E3F358AFEFC0B706C7
-EA097CFB7B75132254B71679529736E924634665AF1D59E715F5213B85FB9F21
-AB464B075A6B21D38D7A30C8CE6FB42EA5027D797AB624FF5C030E4E573C3850
-1576440177AB823975FA4E7717A83A6C8CF505EB87D600CDF2C244C2A7099B76
-F7395B17B11BA42FE59D21F536D610013B6442B763BD4E6A0E4EDFD85ACE222C
-316A72B96397D1677685D05A8182924CD1A5F62AFFC96CD48EA13C681BA30C3F
-7A8FFF741660E5282509FBB27F458474DBC8ED61532639FDE02F09551A528477
-67F835B60970E3CDB8BFD2C7CA6C40766EB970B8727EA4E84F155719D72522D6
-F65ECA369A4DE5D2901D917A8366A8FAC729832F9EF2C366A081BB8949195659
-5D8DA8C6C500A586CEAE897838B70FA4AD8A2EFB853F0F152300BEC2817DE405
-DAE424D033AD5474833B7E2AEEE111945B3509682CB43181C700B9B8614C89AE
-092F35DA753FC1958D33B502D79642102FE39CA8E49E2FC41B42C9E59ED30A51
-2E4ED2BA8314B0BEE4038F502F1426583764F1D76EEB8FCFABFC3CB1FB9AA7F3
-3B4C0CAB83BD6BEA40A571983106BB5C45DC01FFC7476374F490F532F4A23902
-984074FDDA5999D514349A0CAE401D217CB409E0EA162092B994A13BB9BF71E3
-F6D31948FD15659A2D41E539459A0859E493E4A056047C2B12F815A139B9167F
-35BBA840C7A8BC855D540975079E36D6416728E3A35B0E44EA0F1591E2C87923
-E7FBFF2BAF159995983DD2A4B2FB442E65EAE256A32519AB2979A26A4A1DA2DB
-07920A95715CE7F596EFC8B87BE04C219B81D226C53AE2881B59FD4B707D87A4
-19E6BB5074C6CC349F8403F4E1C476B3A0C2E9337305884E4D25B1B57C2759F5
-389E3BDD519400E15C42B354B2EB179F2AB56AD88E5A018418C96BA0E5A3329D
-11725544AE1E0A22385B8EAE9E97CD5C8F117E4AD6155CC8562E524C72EB1CC0
-0D1C3CB2D24F3923E4BAA25EDC460E352F6D0AEE708BF39CE2D49A002B0D2314
-0787BBBA0427C9A1C799F4626793548E3175DD94B21BCEFD89A3E835F6240C82
-5AAC975B09B07CE13E37650A059F6F1B946E110A1AB1F05AD53CB0A8D522B439
-0B289DBBAAD637EA95ADC68A7E893F0186B66234486C718684D2E72D56FDDDC6
-A387F296CEBC
+B3F5A131BB19D1E5414C86C5F995521076340536E10613E427782B91F1098562
+3E22288F48ADE6EFA58CAEBE7C070A920C3A85F4327940DBD99179C26E3ABF17
+64E9CC6A45F17F19F3EC1C53B17485B813CB01915D55CA2034552666D5E44A96
+A0FAE064F599AEF095CA1816F7066EF0AFB220FE1DF11FAFD503505C5E6793A2
+6475E95FB467E2F3B5E7C6663A70B15698A1D158E23D3ABE3B6942B24832AC3C
+13F258038DDF209525C4124806A369ADB0423C2FD0F823AE3056F380B7128089
+689FD64442104C476657434FCEB87CF0F30CF5789B430398617359FFD974BFFA
+C9C55ACD601AC6CB8E97FA11DF303EA517BA2CFC359C6D59FF2B72CBB5ED34B9
+122E5487989CAB13A4F8B1CA24C5CB7D889EB8988CD8DD846275F32B2ECD3DE0
+C8B47765B1346D707BDC6F26F1465D16591D53D578D0D5F512A03AF4A269C1BF
+7F1E3A4BFDE928BB48E512AB8DA01383475C57E9DFCC800FCD9FD4960D8ED405
+5C52D648C91432144AAF7FFB4EA13AA3AD6C5FAC5EEBDA0A6C801AF3BF21C422
+1B53FD169F2029E4552DFEF4D27C08A8EDFDCCB4BCD1226A4CBDF6D50996DE87
+31E1D72A3BB7A51CBB36FC6EFDB1C50DBBB498DBE73AB31C9992D92A2A863068
+CEBDDE3A09A6367EC9FDAE330A18646B4745A247B1586BF2FDC18B5346053661
+142830C0AC11CEE134CA6BE6B115E4BFD14E2F323F421CFBD6DABBC49C10C62A
+5DC30DC5627FD5A938F4D92C0BC873AC16368841B1C0F060FE56E10C506F32B7
+C784DD1EB21A0C8A7A08C672B98FCB3C2491C16AFBE620BA1E860438C0E0C934
+630CB619FCECC748C516B2490F38A29FED7CB7C505EBD7134C800CD1A45983A7
+D4345E6D2E6498E11CA3AE5EBB3E579C9B78A771CEED32F8BA3946551C7A15AB
+B578BCAF25BC80D9A0169B6A547D08D677678EB3D287AA32683135802A365CB2
+E4A9CCF44EB215EB95140325F1ED1B4951503D94E933B2B4A6C015DC84D12D33
+0FC7F804048C1362A91CD1367234E78DE55E08F6284F5EA65AD6A7ECF7CDA406
+02E530FE9CA3FD79BDE8FA2BDE763BBAA80F9835A4C9B14CD83BA6FD1F9D7E41
+6C5EFF4AEB41E179FBC4910D123E188AC24C26FE3C2D0065362A87A85CAFA1BF
+15B1A3284F52CD24A5039FA47A73D5B194E13190C94B9FBD18ACD58615666B11
+A686542019874F1E962D034326FEDE4AAF12E30E6CC751E9662FB53CA195627F
+B5C5BA1ED33AA3B2A684CB5452F0143DC25FA2EE16F9C68F5FD204693634E0EC
+AAF0DCBC8799BE01436AE26C7A918C7BD57B2589DF0CB21D0857799D50173D86
+BE3F59E3EA5CDDCB394A25860968093C6FCDF1D9E38DBD1033741204581983EE
+84604B3E0B9C882BDF8C6AB648B1D7617D2181EFDFD8AB7EF075220132E2C411
+439C3D2076D357609E0457FAB333BC289FA0D62088918A9C4867C9CD0C8AB332
+D8FC119FFB5D3531F1A6514C26A77B874DA7B98BEB6AC6C6BDBCECEDBA06C64F
+0E435FA63F2995E724E64128C6783E90300471E3D2C73EB4BD9EFE28866783BB
+93EC0A04D79338D479472669D86AE46792645D807F3FE4AA131CF93B3A3694E2
+FEDE40F4D77EC29732DC4F180BA4ACB87B17423970F9762FFA065F92C6FC7F03
+1D344E46F85BB06AD98A0A9B5F22B801D20400A3D03557679D9983CACF51BA79
+23A12B9C7A67D67CAF0D66A5B92C3A29B3A108C0FD4505BA363D5D7E4AC391B0
+61CD6882B16229BB5F5DA3CC73797C26444581E5D86C54D074457B19AF1E128C
+CEA50A2C106880FFAE35EF7D569F605340B5A3C8F5B78EC715C16AD8959FF4DE
+414856AE8759D93F24D1E654E5573D3089AEEAA55543E1CC25EDEC8D9AA0A47D
+271898ECE2DAD982E6258E9F8B141FB24DAB69B81D4094448713E7C80E4CFAD5
+2D6916759C7C3A017EF5489E59F7EC5976624F323D3454A245ED85A524DF97F4
+54BDA55F8EFD5F4FA9E8E44B36AEB06683C833AAA8C389C01F16A858E08344E3
+F28EE5B7E3F4EF408A0ECBA488586625D5CB1E0D24A15F7681E36A9A3EB9B9F3
+DA6CCC03AAEDDFD1DE8791C4E02D761A512E8AAD6D1E242A08311F9DAD1D5F6E
+8A06222B37D6CCC39C933999CABF6B869D435B4AA756C1656CE6423656687802
+5B1DE7605BFB98CC7EC1EE979755D03D03B6C9474D5805AF57700CFFA0B9B11E
+2D2D8D3A1AA58B8CF1F46490DD73EEA13BDCEB20B5C77D1873603D6D58E33767
+DC96E98E630B2DBA7E950AD83A079712C83BE73CBD713B00EBDD425B239E2502
+9E740ED172EE1FF63233FE13E39BB7EC8E02CCBBBAF6A25DE4F3425FA6BB44B4
+C624457A474E11C05CDBC95F9850969D70FE4A84B7A096A405EB3E5EE73DD3BD
+503919AD5C3B172B51C3949FF98A0FA529F1626D3F2B43CCC04E25B16511AFA2
+E89B2E9B0ED36B5DC6DD312D5B484346900F13FCB9F3C2EAC4C431354198A9C2
+0D1D2C1B4AB8287924F7DF929AF1E48EAC6680502FBCA923EAB6CC8E23A72C19
+695F0BB856501390E2821240F33387EB1D6147D16FEC72FEE6576CA2D507E373
+986BE6DD8782A3F5257A73BEDA19539FD32F04418AE9F4AE280DB489C5D5BA6C
+5DAD0C27E45ED27A560661B46A0ECEBBB3BBAD32D4A2E0E24366FA4ACBB3C279
+1006F6DE15EBEC7456CEDD9ACDAD1987708D2C2EFB33A301AA3AC385CA9089D0
+7D4967C96DB76DDBF88DE16D584F39DEE45DF11FFABF92FA43E92094BA6FB14D
+45C80C976B3E6879AE21B193C3D3398C93895EFB1A943927448042BED0A8E0E4
+64E308D01C9A7B2CAF8867F330894A5ACC8D6A53A5CD1D662934A8568D1987E4
+45A973B0F6096FDFFDFEF6CA327C158C3B4F403184C401CEB9F21B98A037EEF6
+73F0426639A2247BC855A1BF95241A0F002B6DA615060DA8136AF02A07F85FA2
+A8C3418F306B5EEF8E10FCE51AFBF9AF2913D44A88567A6C7DD8E094F317DBFB
+8A2E014C2B5E0CB5632E598B5F5E05322C33C6FC4BB38DCB53D2F05C36B470B5
+21491F0FB127730D42662DDFC9ADF12AFACA3050FCBB5D4B2D632910ED76316D
+4DD15B50524AD795981EC4EA9FED7A8359A0656C8CC97CF8B6C93B31FAC0AD89
+4B2B6426C44BA13CCBC90D945DF35373DBB98239B0996E74A27E1D0A03DD6DE2
+13899C0EBB143F47C81AD18747E491E831DC5F400B2B15AA148B73E7A60E562B
+0862AE054ED5DB070E4511BEA08C4A45A0A4E45F254922C3AC8A60F749CF3199
+2B54F58C6D1219515ADF3BA353A8864F2379EE2DD75D1D6D4F23D4DFCBE916E0
+BC6BA439068866934B51C4B3D323F493A155D734D14629E717859F79651E7FFB
+AAB7DC7D5AB2C817A2D53B695B76DAAE59C130DE5BB0250B6FC71D428E51C638
+50A12028F5AE208554638D56354EED671044FD120AF994A382CAC7BEFCFB3787
+14C635679E0A83918F4734385B06C0D2430ABCFB9790FB6B0C35B1DEC75147FD
+93FE15B6768651E4A86BC7D4ECCF3929004CC1D83BB96FCB66239DB04EFF505C
+699270F60BD85C459DC560ABC6AEFA21A14EBA379ED68A0D0458B084692FD3BC
+82662FBA17BA478BD4CBD0581486B3879C29EA67987049811D3D7924BD567652
+08CF2D76D019BACAB684E75CC17D43752ACD5912B77B2598077912DD9FF9B7F7
+9D45CE8BA008826E3B3453FB33960AF037C524F9EEE1E5D162856D7C61E60FCF
+C47C65CF4144FA651D6C1018CBE382976D63357457B65A210C0A91DB08EDD237
+74E2A1074ACDA59FBBDE07EA3A7D35301D77C9B3B32523283EB031CF918F2D70
+A37B7830270965B7DF23026280175DA18783BEEFDF77E594DDD0577604B6AFAA
+04CE83C72F51D43F560A8A637C9109AE23A2A8E70547B90796194AAD05A71F55
+EC2AAA6E6F6195599A64D0B6881E6B6C7E388B998A6EFF16FB50CC4FD6BE9731
+CF4CAC7689A908305C5D10B452D99F241DCF8A9322D5A3D1675CCC5886A72669
+968784DF64DE454E24DBDCF35D8447142C74E39AEBF975415EC667EF4ADB470B
+7B064A2EB41BC9C748CC2C87B34119AF8D90B787A1746C5B0EA0A596087FD328
+921369872040912DCBE8D61CF5173B518AD912412EC6E1E1A62F98F94CC692C9
+F8E1FA3524839F59184D6222EAB2DDEFF9C5AEB52E18D8632F45879F720905CD
+7E228DE6808C4DD45E73C1962DB596000C951E0C7CEAD68907C4B6A71A304DB2
+EFF52E1E4C518C16239A1BCA98F5B2B31DDEB4645891C2BDA55FA36BEFD60A97
+49F18006E4745FFDE55AA8857BAF4447E6DA000E39680FC39D1EBA90D4B1B590
+84EB9E16F9520ABC79050E8D65BBC6D89D1435CAC07B3EC707390E5B4E6EC3AF
+6080323D4CD284A90839D3E64662DD475658BA23B5C830052E8BA64B289ED4F9
+0F1B7CF455230D4D287B1825EA428C5307B8A6E634870CD3F4039B0319DE21B9
+86CC6BB783423D6AABDF9116BF65F434E2E884DE5745FCDD9425A2D24B3F281B
+972543253492F3F23A814F9EA0D1E2FF5858900F0FF61423408417EB345DC41F
+4CA225A39F4C7A4B71E1BEFD86749274999343B0A062C11599F83F0CFC8CAF49
+C9139888C443C2D882C91856601086BDBAA9C35371DFCF1E964CFD71AC2A0B69
+C30FF89044D0755AB03CEC10AAD0435CA3F1F86B42FA70655179FA9BFA41E7FE
+1346EFB0034A18C228A8B0ADA76814F18E56671EE6528288B511D30A03F994C3
+26785306EBDB08A11C09662261692F98F385E61F9497F36F43C627B6A3FAEDDE
+3BAE58153A3B740E956FC41E29923D13888A50032597B9CAB299C1BF884A5001
+0B52622F7622A50EDFF74D97BEFD798E183725BB276A6E33E250709781F1887D
+53FC854F7F07F156D509EF432DFA317CEF0793012CB2F097E07C66BDEF5EAB7F
+CE0EFF17285F31298BB81C1CC50CB0EC984C1311B66CD24E0602F166F5014185
+4E38CAD17A62BEAD92CD2AA25DB0D4061F503E2E2ED4D0EEAAA6C97D2B253D96
+1AAB5F4D40EBD363EEE76A01378BD8636BABD43B9A8B18A1A514B27F0C88110E
+1DE3254D37261145430CD39A8F2685E611FF9C14E1427EFC121FF812EA60955C
+C77B58708FBF6BA301A7E909B1D166D002D8C4B8CB66C51CD52C07C9010D5359
+82A217CC8DA97CFD5FD99E12D205F61473401D3C43AFF0448437D316694747A9
+ACE4E9BEC72026B1E83C037FAC43460F62B1FD771A9C5F03AA347D888ABCE3FF
+4B7B7B69F5E49EF462CAEB299555156892014ABD2CA18C7189242D5219ABD178
+C5819CC1F509EC0CF0E1E3E249E871C1ADDD06E18644AB897D9DCFF9B9E971BE
+D2F8125247A2ED412AF5DB80CDBC588AE4E195DB17C4437B6FDC5CCE091F88AB
+C92128DFDA17D7326AE1446DC91BBBA989D94045A782D1530B81F551972B9A46
+EE407EB010DFCD3830F8DB622984C62F7F4C3FFE6DD106B634FB5318CF450F3B
+FBB998B70D84EBC210BA829F5EB76BED17F1BE3F2537BB2804A1F4813E381DFD
+C54F6F392B00A82B7EEE6AFE4976FD7235BA0B8D339FC41AFF776E611275D72D
+34AF70C85D54B33AFF4B6C141C1215358DC5670D4F9D7B5C636C766184E6863C
+E7A8DB1FC60C093CC5B20C1454748DBF05EE2FAA71F87632C61E80DD10FDED0E
+A7046335C29754D27BE6B5F39AD7554586382ABB3355E367E94646B2FC85DEEE
+14E5831172B5668B27671D5005B0EEDC0244628F6746F43DB0E9F4919957BDC1
+769C1A5970EDEB74EC7F49F63F8367F554BBDF04C8A18A3C9740476243CDE6D4
+A03FE56BDC1F148538D07C29EA1295CB4E4BEBC05A3765B8BDE8D46EBB0206DF
+B6FB82412BA37109FF0518745227AC234AAF169ACFF2776E820B425953498AD5
+DFDD5AF4DF661531598F1548FAB29F8E28C4AA67B987D33B084BE2937591EB1A
+427945B36DBF80CDA83D02D2C1C808CFD8D1D8476F78E42F295166C591EA545C
+7AF53D0AE4BCD3C39987A06B5556A9C63FB411C99D4AC57B79FF912BA5987575
+0504A87B3304B4E6FFEB865872807DFC8EADCEC909D8D6D839F923FEC10424DE
+50C16112505B363FE32D5EF407FE2B8BD8FC10799C3CEF5DC2DA9EE7DBC774C8
+F68680F98DB7AB84D79565E84B0063B2F466C82AD817C744BD72605DA743E612
+3DA12819A2C5357BCA207A756FA1DB40682AD3031B75BF37B17F671C92CCA035
+CD188B5184F2A8C01DEC7D75062D0E14A1218F2CF8A3EF5079FEC3F95F73A9ED
+5F1C2D108A03B9435D2A8E875224C0ADF0E03E558D29EE705D44E2763558471C
+9BAE805428A2F10527A1CCF09EBC44C70CAE43768ACA19628D801AB11345FF6B
+A46D23DEE958A992D3111953C82903B0788FD52BD491B78352F3C9133FC180E8
+3F1B98CF4CB038124B9E2A9699EB5424A97726621ED51DFFA1CAC9F1BE906B7E
+B8806A9E5DF8BD74252E67ECB24879B253BC02E505B7A32468594D70A7356F57
+932C5EE332F698F5F66ACA1D4B81A9B521D184EE6EC52BC97CBFECF8FD95E27D
+F03AD4B97E300E3F36DBA88A40D9F72936410CA2B511C42F4C2EBFEB20BC3A72
+440B22FDEB2F46175F64C60FA82F7C9AFFDCFF96640CACE4C211D773F03C7BF3
+2A322AE5B263132C6DD178EF04E62E1265EBF8F4B306C8E5C2AAF7C882DCF8CC
+4153A3D63CADA7F1EEC6902D48DAFF08DC3A17E9AE7732649A971FF6671B5EB3
+D741E6507F6CD7BF69BCF6617A86E689EFC7A3C7D43F85930791FC3E0A49AE12
+563490AEA59ED993D11E0510F64FE31FEE70C92DADB323E36212F3F5C15125B5
+37A480B4E46E5CD42C32E68D7A574153A2EBECFC3A8872C4D7DCF45311AAEAB2
+03564F6F595FEE224F75B4F4438627C878098114674EE482BEAC4941A87F7EBA
+AF803681BABA0890874FFB6D01D3D3CF0FE8682C46D9737E95C913F64E55C300
+FA0ED70D5C604F90C1D764CBB0C49C34EB7B76E3BBA02F1154C0E20B7D8EE5CB
+B21BCA91E4BB5DB62938FFA6361AEB2E49BFD61C053FB73ABD422C09749179D7
+B7513314D5DCB5525E72018245E4CA624EF10E913C0A811C76902B2FE6C74EF3
+EA839539EF27B31FC7F828C272B72685D23A1967D4BC903A990DA7004DF42914
+C4B512E1B3EC50DF510BD51EFC31B7D5C4DBAD3F24B0B0ADC745E263BAC4A6B6
+0DFA8496FD4812E0C51AB09598400C474F02742C010CEB834B84B466882221F8
+99CB8E30D38836B43B2361F29C1BC3F35AE96D084E2780BFEAE0809AF6CF9E7B
+2738E0774629C43E63B90A31F89A6ADB29D2724520766A76FF186D6657204789
+ADA458DB0DEBA76579EF9B21510F15A98EC00F9B17D5E2F927477B9E97DD7C21
+4F248F07773F16AF916B2BD31E6D6631CFEC133D9BCA1EDC8EF6C5D788A93D88
+7FF7E671869ACF1442A14997A01B85F642FFA89AE27D60B53CEC9418F772E59C
+D3BAAFAAC25730AC6B7168D9E78B974A09637302D404E64A11482BEF20A94A9A
+8C9EEB1E48D758FFE7E5236888175F802C23CEBA580637D975A979D284EEF29A
+FF3E83D39EA8DC40207A1C91F021C7FE9128400E79E1D1C88BB4BCD8369A9AA8
+58D0592A3AC18FA116DFA9DD297075C9C6243CB28262539EF1C48D850F66546C
+B8EFB06C0F339A2DE454B91B129FBB3CD3F319FDD5FB7DEB07827FFF722C95A8
+ADD385E9605E4C5E4B467455FAB8E054CDC085C9F3CE905DD5194049D1657839
+73C465D4348000A687FECE3C916F00960EBC7A245F67A63A15291A0F62261D3B
+D0DBD831D091F9FE88BF29526B7316E33B229F44DCE193EC459F4A5C0C0E719A
+33DA6124BA1D2AA3D93440FCE000C42942242A9E356E5CB10560CAC62FCD0DF1
+ADE8154DF592776882EC3A77D6202DBC204E3DFB97E05ED1128DF9A2EF0C8C3A
+5974CC0B523286147A938EDEF90923DEE8C1758FA8B6A0B689CCB1D8C365EC1A
+1F6292F3D4A8BA49B6BBDB1D92E338BBA96E00568A57C27C64F2AB8159DBD21C
+69A49DA9DA4521F6C8CABF809988F886780DC60413C46CC8512E2A3396754FCB
+6FC515E242BDC9BD32DDDFC1A4456B837C21176DD534A41583966518135D00ED
+4E4A7A6A639F464A354674CC1803A81CB9BFC1262815A4DD95229F05956B97F1
+ADFF3996303BCE98E36BC076A0A3A9C731162957B56762F8A8B5EBCD716A6804
+1954278A0EDCBC6C1719B9D3F8FCAC515A814601D6FCEED0BEB1797BE69C6404
+DDD598E08571444E08EA827BAED5D2366182480FAAA91A37C9D7EC7460A614E9
+D4D5EA6C425D9B9131C3769012FD66896BC1D0086DF016310DA3C56AB53CC840
+872F3E759A3F867E6D1D42B611C9C781BBC9AF55279547766D0351FF2B48FD49
+CE58CC05FD7297BC11F59DFA9F1C57F465FCA6FA213591A65282AD2E4A92ADAF
+
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -1806,24 +1879,33 @@ dup 41 /parenright put
 dup 44 /comma put
 dup 45 /hyphen put
 dup 46 /period put
+dup 47 /slash put
 dup 49 /one put
 dup 50 /two put
 dup 57 /nine put
 dup 58 /colon put
 dup 65 /A put
+dup 66 /B put
 dup 67 /C put
 dup 68 /D put
 dup 69 /E put
 dup 70 /F put
 dup 71 /G put
 dup 73 /I put
+dup 74 /J put
 dup 76 /L put
+dup 77 /M put
 dup 78 /N put
+dup 79 /O put
 dup 80 /P put
+dup 81 /Q put
 dup 82 /R put
 dup 83 /S put
+dup 84 /T put
 dup 85 /U put
+dup 86 /V put
 dup 88 /X put
+dup 90 /Z put
 dup 92 /quotedblleft put
 dup 94 /circumflex put
 dup 97 /a put
@@ -1836,7 +1918,6 @@ dup 103 /g put
 dup 104 /h put
 dup 105 /i put
 dup 106 /j put
-dup 107 /k put
 dup 108 /l put
 dup 109 /m put
 dup 110 /n put
@@ -1848,7 +1929,6 @@ dup 115 /s put
 dup 116 /t put
 dup 117 /u put
 dup 118 /v put
-dup 119 /w put
 dup 120 /x put
 dup 121 /y put
 dup 122 /z put
@@ -1883,300 +1963,328 @@ A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0
 23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413
 19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42
 1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39
-8BF27C074DB8546B9EC033E07EDF1EF79EE58A49CCFC9051741BC88C67B12A17
-43FC5E1AD7790F954892998DAD5D8DA5D9B1A80E07BB44A32B8315062C315D4F
-94F2FAA0968D92A22E99D18B93C895573FB4BC545226572941DD010D3162FDA7
-95F95773385C241AACC7764F554780290CD9439210C93F720A3E4D4CFA995EDC
-00A253BEDCCB5945EDAC6B2756ECF03B9361DF03C9C7FDD8E893B4C0C163A891
-FA088A893BFC59DA23243078664D326574DB10164697F6EFEAAA5E0CADB8980A
-711021172DF31D38852A5BAB66CF62DF570C4FA23B4D2A3129EEC899FC70552D
-28A53763C84056DA456E2DB42115A46892BB0D1890EDE69266A1C4B20757B3D6
-C2949AFC284E0968F6A45E36FB8A1D0D449D9E7B5CB2FD98335D710C4D49C0B0
-7BE55769E70DAC13E5545217A121ED7CD68B7C9FC12B72934AB29CF487059F73
-085E8251F695FED98AF3D68B808D95B1E29296A9DB121B69CC5441FAE417871E
-C20B9519C92E31B9DA047A7220B0EC09C8A47576114D85D51B4636BBF3AE7730
-83A37813FE291DC15EAE8167E62923168FDF9B9D865CD9203119668052F2B11C
-36C8BB63921CA49A44C6CEAE69C995BDEC5A097E8F1325B4EF007577FF011F45
-E3C0883EB7E6AC75AB7A69DF35A9A4900218B560FBB14660141594E8B4835E97
-EB0A4F16BEF6AF6AA26E7B601F6E49DF5338291D7012D513492C35AFD99474FD
-A4BEBE572CAE0831BA340DED3B1B10EDCD5CF8AC84DA4DEB012B9EBC87321FAD
-B411B3A3BA30EE2817CAEDADC8A4182DB35C6FF3B8961B26822CFA082F0A1CF6
-301DC800F1609F1095BD60C322C1A3EADED26963C565D3E690412E8260F2AFCE
-9AEB97329794DE537559865A14BFC1CD4F18A3DDD3BA831E7A272FAD4056FB8A
-E8469AE2965A7DF3D09491DC84C64B38355044741B32BBEF1F424907487F5191
-23A61C352620EDC72A376C7774EAE6BA078CEEF6F0ECBB2D0FB83B74F6FEEB7F
-B92DE4198EA244F6B37B4D78058B7F5CAEEE181786C328A1E30609A9058F4356
-9BE4B5DBEAD2363FE6ECCF1BB00592AC8F1DB87E892152E43683251EBDCF0A90
-719D250C673CFABAB1CF5AC4F73096F5F4FE0F6B09C51B56AE2A0B975E3DF939
-53F1D3CDDEECF80797A84F559695168D7EF0F4D191B914EE66973645B5A8F8BA
-630053293AD47AAA29890FD5771E9748122B826C0630E516AE1BF92D69EBD0A1
-5115290D1FB5924436D43754C10B88C19C886287B65D5F523D334E1AA5408C61
-C7AB1B64CFC61E3B9125472F997505F1B96A83F1FA9D7FA1ACE9B14922FC6F4B
-CB29BCACE55E5BE4FC60DF427DB44188891AE8EDACAE010CCBCF919DF7FDD464
-FCB381CB7814BC353663447A9CAA4BAF69316A614DAE7C04C27EC3A1CC70A8FB
-2FACD35753531EA3D8AE0DA9A3B7C82903B0788F904F7DDC1D3AEC9EE2EF1E2A
-3459B15A380B9A5D123A70D76D3C783A86F5EB91D5C6CCB823DD6B6B60E59CB1
-DA8324E97AC28F401CC62296690BA9AFD19E865776794DF1B4177339A470ABA9
-3197F8866787DB360902D9745BCC0E08DA6961FC2895E565200D90BFAD3F2F37
-E284301A346CADE87447C0B40C3FA1F18963B31AE3ED9BDDC6515ABD45C83AB0
-C86BD0AC11B4D482E28D14E23E7F6C2EB72E135237956B461A2A36A13D09DF99
-E4D424779BEF2957B04B349648FB88C83F9377F221C47839FA010844D7D862B0
-EBD7A39BD892C54D5FA5169889F0842333FCF45F1375B9F754841D5BE3305E65
-FA81960B0AB79EBA54E7E2CF963E75974091341D7CD2E496872C2347BD2DFF30
-B68B56B480921D8BC12545FBB10DF826595BE9EA3D93CF1771B2DF6450F795D5
-938F09DE2DB2881C0BEC916A1F3DF380B0031AC05F75E10E5A0D6BEE4A3F6210
-F7E6D72D4D3E775E6C5173F69E654084FEF9DEF26ADB0404A2150AAE50D93B5F
-4CF9C92FE57FA35DCFE5B15AC34A5718A5A48C5715156CC2A2E67C04116ACE8C
-16A8EAB5B440A00BED2B0BDC155FB888B706B0344B4976B9D65602B3AD9E9DB2
-DD35632C225B382464DD698FF8550881EDFE874E9C31F82500A83F9AD5BCEE5D
-94812BAA3E07C287966134637DCC85228C14FFDDEE4D1E76D2EA16ED148346ED
-DA487ECC9B66E218DCFF7011ACFAA313B1C544839FB58D943104A904D08A1D1A
-C681C84DCECE9C2B827E27C59314E4D11041A10CBC7818A7B23778324BD4C446
-A57EDBEBE4EF700E1B5D01CE05FE7A8EE76737DE60E15C0B14B4D8BC7F28C7A0
-46CE0292F978508E2E27D58648078E858A858D1B152B9E298FAC6460612E8A5C
-1C429659CB6A87E9A030F428D5681FA21B555B502B2195A6E961458C136B83C4
-C4AFC6D1C10F374B9598CDEC3053EA938DA72E8A78B43A4955B6C38515593809
-B6A9B549BC2F066A49E7AC0D73B53F2C04840D447984EC3EE137EA24D2E85F4D
-225650214B06205747766E1FBC1311F1CBAADD919B8729735943029091861B01
-DEEEEA8F1D8241DC7AE98545E701B4FF01F5FD23B7E5CB7FA7EFA1C41667D140
-6A80CB026B4CF677EC709331CB9A659A56D1513E3AD1A46F2629277B16DC276E
-02FC1208B0F4908AA2FA9E8C856401C5072480B41BF4083131D9F8C88C90AB95
-F108FF455C55AC92AE9E27942F8C366BB068C06F5F8E8C3C5952B63497768188
-D76ACB57961A483078FFC1107301C89F857C66016BB384B350099094E3413EBB
-C16818A0C1831684C503F93BE09EA59D74465E72400C3BF46EA7543FD8E41588
-22C32CBCF716844C6F77389D7A8C228E1A77CE46FF04CFC5080EE3AF10AA533A
-D1F56C5D1CD2465A928DAADE746FDADA0E421CC17124B4209FDF1CA9711D1548
-10A8FE928FEBB8718149BDDCFA5F3C139ECA3A2F0DCCA5AECBEC13E9EDD7D893
-1A7523B02ADC4FD3CB1E149C4F5D230827E102AF0D33128D7E88A3C66988D217
-1FFB28AB7FA2FEEFF8FFE1A84A3607B362B1BF4F531FB947C4BFA91E6C77D584
-1ED8CBB30D37059DD43271CEC02278AFBDD0E427A967E590E157653A2C0D148E
-E46E12013F686B90746EB1CD680BE1D9184066E01FE7BB5792561B7A22328312
-472D82D3A46D31568B4C790CA867EAA5B16833EC8C7404AAE9F623AA6AC17AE7
-5A7AF1D862CD1CB1F25A32DA697434EFF3849C422F8171D9A29D797C36A09537
-F37077FFC5E001FD85199C5B3D9B7FF7249B80BA8C62AD965788591CD238C3B6
-026DEBB4A60EEB2A3B62292F8F3D82C94BC629E96FEFE6EE97074F108F7080BD
-EE3540D49A94A19F4B1EB7311E9D77CB1D26D033423CD61DC4291A508AA2FD4C
-304B6C5184CBB5CFF8A3BF842B682E2CD0F7A54AF2C2D215C8B1FBCD77FB13E6
-C2254AE23E129B430AA46AB4E6B35258D470594718209777C57959C60BE17FFD
-788A7243B7110A2090501BF0C5F143017826A7B298CEA06C3B4D8D6214A2A745
-239BC0D20F1000367BAE0E9542A8FF777417E2A7B1613868DACE247D8482FAB1
-C0304AEF41233EF9A51497D224FABEF970ECD22DEF65DE46E08A1E83F367CCFE
-9E5139944B34A25624C4500A8E7FEBBD2E27A19C3279AB588C5354F19003A5F8
-287EA605919B91E86F1BD865B54EA864000ED555B5CAE90DAAD0CDAB0B7410E7
-17D283D03E0A19ED9AC3301B9888DA02DBAA7E3EC611E118B3DD32510F96BE6C
-6910FA31847F962D56209DD046AD60679F5CEA7B2EB9E8D110DCC460B01BDF1F
-9C3F7DEBEA202D6C7F0BE3A67735C4F0B542E4CB02FD9EB8FE744AD244A22DEC
-36EDE0A6181C7F092855741ABB71AD047765F9A45737F922A995BC6A8B6150D7
-F5A3D6A0DE3B4210373BDD009B22BC35436592B668F06BF1C87935D525AB43FE
-AEDDD07D65B72CCB2193C4E53DA274754140DEB1A273C13385FD877127728F68
-BEEBFBC38C893FED43CB4DEB99894FD0A3FD4405638DDD35340246C6C7307772
-A70B9C9EAB60A1C20D4D6CE62B49FD80007C657C855E10998146A6A1CF1E02CF
-51DAD4A2B65C2F2D57B62F5D79B65F0BFC8479681B23116041369D539FF1DF35
-DA9F13A50226B93529BBBB9A906C70C43E284AB297BFB47D1B1FFEF909CA3146
-FF2E87CB75530EF5D636CE3E5AF311EFA5024CEF3CB6B01632BBEF81597BD237
-EE1B2817F70980A898A43E31A802A42FB32016678F7209681F541C38A83B489B
-DE7FEB97315CF292C301215DE73EF478D912CEC84534D107F5DDD03E9AF64DD3
-8D8033AA8AE386636E01FD4200F66C51DB0BF91CB84D4EE768B9D621E60B4185
-B0EE87D2136C1CEAB8E330C5DB9FE55A14C64BEB1B1BC63841EB4C8D6AEFE495
-4E74EE83EADDF8C543B1AC74C814AF090702F32E573E5DE4CF7141ED3135EA0E
-264536181C8F59F0EA0C4E8680C26B994C6182FF91E213CFB2065C857C55B3AD
-1C4726017B887BD4DFBB46FF7EDDFCF48C4421C4F26B048581C560D9AF847DE7
-B3A0FE52DBAC291CEF0A313F17F8FE9D322559EFF979FD2E552D1F1EBEFB7AC6
-EE88B7761E0CFC97AF57F08CB88470F2DA754F09D6F128FE965B20BB2525FC98
-249C1B540C9D2D073233F8792F6F265AEC3EEEDD369052723A2C266457FD93FB
-07525B72760F160D7C2164F09B021F4F5EF58E378B3A2E9DFAD28D16CC8FEF43
-C6C99CF31F77A2DBA3DA73EAB7494222DD30C0EAEC602B7E253BA8A2462EDB42
-A4C49F987866C5424ABEC38A303D7FA64F5A343A071BDBAE02E3477E697ACA94
-1A41FA4D319F7BB630CB8F02E7644EA8D12CF3D497F4F59FD719C43AC95DB400
-015058B5130DB231CE4086E046A78788CEC68F86C9C37BB32158CCE2167141A9
-76D647E47023ADB1CE07DD63E20BBC26BE152AF945872C200486CB1EC387D4EC
-297FED25D2D2FA1B9595FED7DF8707792102AC66071BE7BD2C1E369F2F18E654
-2C1F03558B6043D11A1E28D49F7B0E45A836AE4F82F324DF072E012C67663669
-D9EF28304533AE7B282F4CB0B3F89202E04E88675A6FE03AB57BE0A02C68385E
-0AE9E3563375A2EB3C72BB2E26C0681AF73EFEBECE1B981AE6A7570D96C646DA
-75CCBE19428D8C28BACDBB5D88EC454B86818CD8AA09084003C2ABE99A1BCB5B
-1D324C9CE7A50632860C0669E9B69CC5270CC18AF2A2CF6202F50C273A5EA3EE
-9EDA893EB8629199AD7927BD9D0D1D3833FF6D741AE5D3BB3C068063285C0EC8
-6C96672CB3BFF6132F7C3A0F9E786023F00BA5D0D1EA25AD724EE01B3CCFEAB8
-655725691A3227EF4A0406CECB7AE7EB3445A4567F88C3C0E3DF7C1C9D4FCB88
-318E8086048244B2DFA9D26034B8E3D5A426E5000FB564CD26FD11BE4B0F77BC
-2AA916F915E2B0BC5D13123544313F8EEBE417CF38B694277DA68F7A6D3805A9
-4CB1BB9905C7042B5B9481EEB02E2F83C4BA2DE1F69C0ED478CAAD51B1F16207
-BD105239AC1575688AEF9CECF797BD0D500BFFBCBE9FD950A5B77744E72B3A35
-2062510F78E3DB1367ABCE1FCE968D1B370D4FD7109BA3A828B27DC8CD23D6AE
-440543FC93FFFA292EC7D997F2CE8D463A527A55B549885A5340A802CD217DFF
-38F03DDCEDF502968E8D9DD437305385ADC964EBB0ABAE75D8FC028F6B0D6D57
-CC0AC2691C0E304F3D0DC2BB38AC3BDA20580AEF0BE959D0CB5F142AA76BAB3E
-CB2061FA46F208EF10EDA17D40917E8107C7CB8F30DBDAE15BB6680E75254606
-A8B523C7C2FC96EABFA2BA6C6C0AACD8D7BAC994B696CB53D7BEE1F220D47F79
-3A68B04A705C1CC6CCB2F771A11534100ECD8FA4A84EBA138FC46105AA86C7EC
-611122CADFE8B5EA81D852B5DED241587616978FA3B76F8334A961997F2040EF
-D3C214D230636ACDC18242FA4860DECA7AC39A884D73FF37F8DAC93CF09703EF
-A36DC822458D028F849A5C7268E5AB88278E28E5F517CE724D47F0ECF0E8690C
-9313B361BD056DDB0880F43791636C4D40D18A9F46D945CAAA035EB7E0A7F570
-FE4013193C331556B369ADDF007686B7EC08F844C1C88BF1D9BB27DFA579BBDA
-492F89AD3913CBB7BD27B484BFE398CDD06D2F1A128F7BFA78C0FC3607FD68BE
-1A84E848850619BF7A0E545635AA857CAAF88D9EDCF50F668DE044456D4EE431
-2F87676407D4AC6F55330FBBAC38D3285C7DE696C517ECC358E7A064A6B03CAB
-2AA9431C4E3414F783D959D492B3BEAF1E73F57C2B0005B23872181F244DD164
-5D51E7EBAF9D75003E61AE6CCD92CC885CD9767B0B7B358F35C5201311B2F19F
-CC351286CA466E5084F6276599CD9941A9284BF962FD738ADAA3E27D51D0FC9C
-EA531A758E2B73AB87E1A57ED9458663426408B196E541FFF8BE5374D76D0746
-C44296870BF94FA77437E5D3124661A0574252D85BF62F0E9829911FEE953A1C
-C14694D8B4CD34846042271E01ACA1145D8835BB17EE09CF56F47EE0A2854580
-C3910B6673525F99D9932CBAE85DE93DF2B0CF892E6AF3E568275230DA9408E7
-C918F74F101CFFC1F4F7E49596A100DB9146E5F53E1FF87359C27E8DFE3E8AF1
-7731036EEF9E8CCD909BD3BE82392D55ABC50A90A89EC845ABB750CD138E0C33
-5E8847C34758F45CD07F3BD674C76DAF0FCF70B18C4BED29F7E1550D797B6A44
-93DD8F6BDD80EFE7720E59174B08023F013949457EDF6A2F0BA9F4DE8E626F40
-FA05A492E0EF4D8C68AA8C4B4FBF00AF3F6CD11CE75FA71EEF0AB91C96DF37BB
-CD82049F8C20C8F3524A150F4E39E5D21081A507E7CE1EF3EB3FFCC6AFDA7603
-0EAC4B07E297A96AD2069194A61BE8B113C4D20D325822C85B8CFCFA3F40C758
-47BBDBC0769B9FBED494A1BA0D4E61922B8C0E417357C3561FC56A901F175DD3
-281651EA8529914F2E4837A2DA0CA3B46004D5552107907934364F7DEE939826
-7D06196829F660151737416FB20ECB8F36E3D8D7BFD6712959139B5AC5919FD7
-C0E216C3BDD875B322BE612D818E1E32D6ABCF1B2555406BDCA36868302A9E3B
-4FA13AF128F2E59C33038FC4DE675C431C4D52FD0BDE232C3DF031747D4C86FD
-871493731C2208DF1541873443DD5ED8E03CC0DB539B46E130B60B01C552B698
-200BC9B7A54D6F10C95814221FB27498D2446FFDAFB61478AA47467531E25B9D
-4D06740D92DE79093B23D38C36E5055B380538FC7A8EAEBB47F60EE2435F2843
-55714BE5961428A15B7A86E6230748FB48D9DA30ECC5A386E4DA32C0F69EDCAB
-81248034D037C66FE305777D1D0577BDDE3B984E9C807F49FBF7CF363742D5CE
-FAD614C86256BBDBC6A09803B8273BADF9F12861F5D221492E686293A41EA097
-6313B2F776A927345CFE6FA20A12764DFC36154B87180EE143F0C4A1A52C0BDE
-B1B499D4B882242F96A5DA4B7BDE3C4E46EB2117078CF24236BE617C9B27E852
-D88BA1AF41A0FDE6EF7FA39983C3F92010146194E454E8DCCB8BBE45069632B8
-90B5224FC5E789ED902B688C2348907B9B43CDCF0E91D683F28187D0280BC535
-5B1DC2F60309299589D1FE956DEC7D41542612F7A144524C905D2A85FBEC56C2
-E277A10A0A7DB950650ADFBD892F6AEDA7A6C656FDC8385BBEA11132843BF8B2
-AE328AC118813A49902F0A6B82266CD00E44C0C82F9F5E9900209910E44D3A77
-2E6B344E9A4F293134BDDF84FC2C84EF0C683D57317B83AB1B330E2EF0021B4F
-43CD405BF85B734605302C324EDED59C7E7C677B9F2C2B1F483F7D80428CCC10
-49A94151FA23949E63E02FAFE36496DBDB68CC2A22878ED902A15CE90D4435C6
-4D46DA5DC2058936196CC461ED2EE73C0AE0B56BFE5BBB01F478F7C314CF6764
-00DAAFBE44C85C1134D24BDD597E0A81030B6E2A4927D5D5D6ADA216A43D12F7
-0945779E613582D17221720C2783074A6A1094D749C281F70BA0C3FDF100CFC2
-3F0F532AB5DFE9042C01F98887CC49D0A977317D75E8D59BDC200D14FCF510DD
-CA3D11CF61C1F61EA16078B90ECBD382B5605832659FDBA78D7C6C608948DC07
-0D5B9C44FD2930EEFFC22620F3AEF09EFA314D19EF05961EF46324C98CDD9EA9
-A3F47610D6B44E4FB344493B3C2DBFBBACDF9FE7F07812A0D313180DAF366106
-AD062285D32B024F49595D2674B5171A589EBEAE22EAAFF40BEC96357E60E345
-103BDD9EEEE21F9F84DED65A2E2AD59F758199FC083B514132A6930C8CBF7B2D
-B67F96555A5A4C4E6130C5BC91747088AD9FE4CB9D0B27CB9F96E8BFD9032BC2
-27A1805AFC34397DF1FD3B91E788AB1FC646CC9FC4DD20B1CF4B0F22A49D6989
-30770EE4C4C94855AC800D32BE207039C30AB0C371ECAC040378EF60072F4D68
-4CB1C03F8ED7945BFE08EB333C0C39C869F38BADC8D2AA1B9F57B22764D739DE
-2D51FCD79BBBEBAC09BCA917B7B3A0CD6240DDB93D6FC5C9D64A7D031CEF2481
-A05484F1D774F6D0F08D794C856F2655A6B32827AB2638EECC3F5AA1954B8DE9
-1868413014B763F69550B9D9652DCED1484A0B29CDF42C89A4AFA274BD3BABC3
-6B360049344D5ACF2FC7005A58A6C6C558111C0D03E979799A523D2A2B6AB19A
-B20B4DB1D7A1F7A8B02C1CC80B467BB5CF48BBE83440DAE2538A8E98E9588E86
-FD288D912C9545B06D76B6BF85D9E65B015C973CB5FFEF88534165C577DE2939
-059FFB0074F8F990FAC7C93164DB9D34679847F10B565D4EFAB25B35C2F344D9
-DD4FE332F13965F3F9141CFAEA3A77DB7AEBDB37DDFA94BC8BDD9526BE3B164A
-264B9FC25D35AD5971CE33F4BDB6C88366E631FE6D95D1D120C1C795DDEB9FE2
-85AC2411A1A6E8DBC2AD15025E99722C34C60EAA8F6AFDBED517E913FB9F9BBC
-4CC1518EA5C025ACAE47F5BF85C32033441F063DB1E4D86345A90FAF8ABF117B
-F4955D9E290983A345D2AEB9E814D3409F81B25CE379A83666C97F2155BF043C
-A94E67CBFFD74C5AC64B0B37308F164FF6E504849A6D0EC31F164CA448B41715
-2984901A91C838220A9FE10B63FABBEFC8242DE104EDF1A481BEF5983FB24125
-DEB311F86A7617E51BC2F7F42DBE58B6C07BF172FDAA453C3F5FC86203FB25DC
-0A46FA2FB67938CB23F4BEF64358799FF977B27BB867ABA03D3B513145D05CFC
-D7A787D0FD9D13AEC24A41F3FC2764F5425ACBAB0DAB6B589C25189B8553A533
-54ED84484D06846ED7B466388AB564A7F7A18BFD286785994D5ED90971F0AE2B
-76C62774DFB83A270195FE2DC572DFE7CF77501BB73DB6B5469117580B42F2DA
-AFEE4ED1EBD79DF8C166C0290C2925398FF3570454C7D8894D8D2B1120CF908B
-CC3E3D692140693A5A90C36004E81AF301299582314E83FF048E9EF457B58667
-D34497CCED4B48C9EAE754DA35053B55AB9D6E3C4B6721624D1824A117AA5A8A
-48B30A1161E5D314119F6EBB7493EBCA149CF67E34EECCE22EEB46FA1E73836F
-9A96551285A7BDDB10101F7AB5954ADB15DA7294441E44EE8F751B3856E729FC
-79BB96554A08D58B74C3C0F238DF2B099AE3562A743220121CD424227E4DB032
-63B417A3E39670B4BEC408EC7FDFAD0380F5963380C3231975F0D8D2ADACF133
-54BFA59CE5A37AD55FEAF9A49D646D328524D6FD826C985DDC80E935CE1C1F8F
-8F9166D2F4274A39D780DF4EDBD508888F20C71F4A0C99765CFE51943790027D
-AD6FE248FD285B872A39991A880B910DB1B4BD5A5A0E6905963C55F0C534A347
-E53C77CE22393C2B181952BDB53234CAE8E46D252941ADE07E6E3A22440A9A7F
-F4F937912590297DAE0FF52B18DFA9C8E5F8B950DD41A7C8AD57204A0CF4E004
-6566B642334410FFC60C53A4CD6238CB9815D8D536FBFBD3220DD77F5C0EB04E
-6E28C5871A39743F9EE9FC507552C9B01F33E9AD9C1A8C23E584E75D9F3DD82E
-32722D372F3677E9AFAEECFEA2A66CD6C23DC23EA834DBAA0B80B494028624CB
-E51F885CD7BD4E14988F28D3D09791AC198A3BEA3886B6FC502A3B83A10DC2ED
-33FB4DF58BC57C74A9E72457232614FA03C1BBCA6FC4C06D06ECCD800C7E9813
-C380642552723243D2A13287D137A7149FDA264591232E5039571EF3FD551A13
-758145C95D61367A3C5DBEE88E2E433EDBD7E1C56CBE8C53E7877F4F9F57CF07
-34D9B4E1A186B89D6058F5E84290525B4F1721A3DCA513C8C61651BAB76A06EF
-84A87E307D72DF079777AFFDB66638E4141C16A819EED46C6EF68C5A70B003E7
-E4A2FD7ECBDBE22A85F078CD559FE8126E2338F4490E2CFB8FF4A3E99EC95610
-B95847013C2A74CA195D55F58C06A8EB34396943C1EC86A7089680D3264D6239
-B5A340380252F9AE87F031023E6B4A6895700EBED6E0C03C05B61EB538F2E16A
-DE9CFA6725FDABE88CA7F47BEF17ABA44A1402D1926ED28A716BDFDA75EEC4ED
-11A61D3FBDF2E20BEC4CA0E11EE2C6B34BA06D530441D37CAE630FFDC7A2EF75
-42BE0F10DFF82D0608C288C95FBCDAE8C5187F8B6B5FA8812D91A4A27E463F45
-0D8F99E45B61EB51DBBC2DDCE17050E1A571C833E143AEDE146E7AD8985D1E05
-38313A5EA7CDF113D32EBE8112F33997210AC269351DF254D5FD4C9802119D65
-E90C561FE0925B4B70DE46FDE1982CAC66932755A47C38A3BAD813D3006E21FB
-462D92B522C177FD6BF59C87F430641FAE6411DD968F6E16DB67F0A0D0F0BF3B
-4B174A4F358773C77FAB0FA43F247BF5A34885278A90A66C51D23CAC568798D1
-BAAE3A53794AD4B859B55A9725B8C6CFCE39EB33173AA0FA208024B7B4573D86
-FA0A36D7FF4D0BFE4F5B0AD61F8787F882B3FC66B5A338A3D98F9F4C6F582876
-FA572C8BBD0A596BCE26840E3248B360D85A20B4D7D15AF021B2AAFD7E65046C
-4D6D6403C3295AD2B7EF7E0A723CC2FEA7C7775034144931CDFBF03F3A0CA545
-AFCEFC2B3B81D262653634F1D28C4D8F0144C37ABFEB5990CDC39BE0808F6303
-84D66FC73B287560F6C8A19302CA0EF7C010CE25825E1CCDA0D4425E127FC9DA
-1770932B876F1250069FCC28DA68A6A1FE0F2ABCFE2432AD27C15255DA933C59
-D2419C06E059CBC2E9BA15BC480FCD1225EB7CE405130673D6BEADC930857770
-8E06FCA9E032F1CC2D5BB453C37A734E79BE7114C887B70450DC34C25A976A3E
-9E3192C11C72A21FAA62E993DEEB6203C731E5438D9BE24AEEC67840B6B34EC1
-A6F90F98E7FF79C2E49BB408D76823F2F18DE1BAC9CBE2A1D10A91899FFD90A4
-144ADB599B30CD7D6E010C14BBE4E8A20D0FC730966570B1684E3DF2C388F148
-CF9000D23A07F02524016FF7E7B4A22CFC99B8BB0476225F1A6AF16CF277C492
-414B9691138458704F585F2FB7EAE7F0CCAE1309FD8812AE6AD8D6114F89B823
-7EAB65A43C4835DFFBFBB3B9C73060BE5A840F85CAB2C13951CECC33BD2C2EA1
-774DB4B04F016F7645EE70DFC934FE567697139C1D6A6A70C136B88109452FBE
-0FDC9DC0B4CD83E819B007A11DA13693F07B7D67678248E54A353782E10A88FD
-8AE2472F6DEFED860D2716511F5FE259DCC217F98FB50B8DD7870CF25FC15D2E
-DE8EDC50B0F4233A74B59885CF3B7F54B913998C670A1072F0AA4931AE538A31
-44404A57E0C47280B7CD731056B1AEC399BC44E2461A9A1585CBDB08070DDE4F
-8B484DB21A931A8B8E96DF7DD720DF83563A04A9C2D114F367121D9F6D6205B9
-1DF91E59D5B176E28855A63CDFF6B890E3DF12C3FF79C0999B7077EDEC6F15E7
-BE5113ADB76F7AE1A9FAF5AD5013A8C7E4090B6F2049FE5E246AA70E707CB830
-59EDEF6CB93FBF9CAF277D55A7B8C4A32A1F665F3333AE795FC502C76E1904FF
-026650982495FC9F0E49DD84A2351157B3CD43623A95813C73CB1DF430E8DF8C
-5724B588D5C66F6BA66CC2D879B30DC09C1804A05B0C7C5D5362931E88D167F9
-8E249AEB644AE2B2C81ACA102820AE78E8D0A345D1342986F1AF422654FE61E9
-775E8ABD63D69ED50BC9FAEFD95A3B6BD1364112C24963FC12CB26B923F65098
-10C052FF431B3A699623C54C5BEF10EFD0615AA4B233D31E12D2ADD101A82EB2
-95957EBC9DBAB709610FE16BD5977DA98CC5282F4CBFDE9E6CA374E5F2EAE844
-2A4EE60B3CA1BD66111C1D442546ACD24AE2FE5191B809E42B33E61084069939
-D0459AC03F5A87F980AAE2957DF9FC66F0B0F82942D196BD9C1E09F377B26BB8
-9D5290B521B4EB324B0CD2B4E90E693B4BBA3ED26CD6166AECEE3DA064BA070F
-25C1527F08DFF170E157C093CF03B5AA33EC4B6D821D36F82310D12773994B97
-1EFF03BA2EEB6A575089CE26E7FDF5AAE940A95556917E66988B020A5B2FEA93
-2C8A3A6A7D2B5161BE2E23D97D8DCD7B910994E5390B2B0547A947CA9AD1844E
-25DD17D053B16E9E906F105B22FD49F098DED6C01F6DBCF1596A231977BF0515
-1E403A20CE2AA91CD305F829E2C53B3193D63205A5CF28EB010B3E73EA3CD54E
-3091DCF5FCDABCF9248BF695160405391E2F16393217DBAA0EA3EB26EF2539D7
-5A2AA11A797507B8674F18CC5E51268EE1812002D953A996A2FA2F58B21791DF
-5C7DD053983B05AC2D189C79B14CE62E7A13F831538800B37255A1B0E47C40D9
-073057E9810A0D776444555192114CEA8A93988A5E7C991D7B849D2DC3B6F080
-A831B347244E3B13EC832606041FB873CDC4627101B786139CBB1230195B6762
-0F4C83A90CBF82C201E5D8E4706138FB7D2C8CF897B1A2C6EE95932D2EFDB721
-4D48C1FB6F3DB3BCCBC707C0838AEBB401F85E6C57C6A44C62F1211B8E6F47DA
-9F18FE08E4BF7FC649F69DE56BD8F7F208D423467CC1F12AD35EED103C0A52E3
-6610B9E516BCF6F87AAA901B72F3CE26391412F5B36518C9FB78CDAADD47440D
-583AE8DEB9848648D1C9791FDBC99BB0C0661743104D589CB1C7274BE7EB7A6E
-07C360BFE998E52E6F902BBFEAEA95144ADA9A4EEF9B6FB073C5BBC27E2E8C11
-7EE0BD58224E024DC4A39A68D60CC69A9461C70007BB84EFBCED896D4B6656DA
-22E33D9AEC5D1B1AC9B06BCEC5E6AAA35B16250DC29E3C75E33E9C0144910160
-3B685EBE422EE091E35CDBA3AEA8B712160425C794C6D11A9B8353014C0D613A
-267AC941E3D5F051B76B68D7EFE77E6B060436ACBD54C185212D3201D4D5C5E8
-62BDD6401446A8F6D5F5757A95FE5B0F667CCE473779A386E1E80BCA1C38257A
-782335B9DC94BAE09538F63F95C2B95DCAEC6783E47986F969ECEFD656A6CAFA
-E1A74AC8024558EE17551D308B1593F1E2A4D23FD570BC70E035B232D946FB9C
-18C26F3A11D6CBD6A0C38B6B3E6E0C30A894D9CFEE3E02864A10762A1D197212
-567DA355E1C3C5DEC8E5F45917D925454973888FC27F8477B2E5088EDA336481
-4CDD5C2DA4430506603114B1A74398C3C80CD1ACD298F09ADA220BF855C1E8B0
-
+8BF2773F290801174DF1E106976E76D30DD26B2EAE14AEB46D9A6D5AE5DF24A8
+B1E70BF48388EB19A7C8B29C32060E48BD7F76511BDBCE65E842AC959C5046A1
+6E86BE1D71E78FA3D60420BDDE4B7AB23451F5A87CE169C24F59690D2FD61D9C
+81E29D0D3038876B09C9D5EF38006216080B644EEF27E9180DD485331A7F1C68
+2C324524CF7004B8EC76AB44560990C477AD1D11313545C7FEF3229FD8E1FB81
+C0CB794C23C0492563BF15952C1731D2613402854B0F0F69167C361E716AD247
+9A1599DB7CC277C2B15C4A8E7BC15BBF09B9FEC12962ACA3A21689E52D2F5D86
+14E14A8BA91C2502D8FBC950C4E9EE94406CC23EEF8656A3A19D820BA6A0CBD2
+04862E9B4F5C07062AD949972F8D5EF41C6B2386F26387FB0AD1D38345FCBD22
+D893B36A46C1BF3A2E79ED3864918BE7E859942A81D782517C61BCB8B71C22E3
+C83771B414724B5F477B2E7D2A4A3B31A7ED7D5CBEE58DC728E3912E8BF5D43E
+426CB9B73743CC9EC1C01E4D16B76D7D9D03EAB503168D6E8ECCE7C8264C16FA
+1CDDEE973D998C8D288BBB744E9A173CD45A9137FBC7428BEC36B98BA93A795A
+5B0363C503A49AE6FC8B77A7552E9486FD3885A69DD3DEEF00BA80712ED3AC18
+9C2AFD2ED50D78082BDB7EF77A828569EBD177ED828131936E925A60892F8972
+4216E46BEBC69A036BC915EAFBDDE504597BEE45A71B1F3EF8A725E9F8E12724
+7DAAD1B0F6F4CAFD0F9B7D6331490DE84B995192A4A74052D9D77FB87863251A
+E735E9146686F8B94AFC8E844D93FE36C9B2A7F9759AAEB94C00C174FE87A68B
+AF6304021C16F70D6DE0AC4D41B061493F1541E9660B85CC9D144BF7CC74C600
+BC3B4852D3EF21C96272DB7951CD7C99E089A12B950A64ACCD27E2A60CFFCA6C
+9A1C2FE056038CFFE667E4ED31A009DCC1897A82B113351866778927659DE5F0
+34A5A0C423EC636B8AA500F111EE3582B44E84422C745EFDF79A5567CD08FD30
+A7C3D4F4FDAA6C0443ECD80C37A6B8C79DC8777BEE2A29D9A8F886C32D9C1A27
+E36A1E1679D9397499222A00057B19DA30FA8D467AF6E39C3B144D465EBDE9D2
+A29B9D1004347E6B3ADB1988705E880F893733C09C3872092D4F57ABD8799AE3
+D93B799874C6C244E29F265101E561DA0E1A55CCA8FE7CCF33853BC63DA0BB30
+7D10C87A53F259CC17B04B24702C7011352ED6708BA178E3EFD64B9771EBBF29
+858F659D242316B0D8235FCFD5753482C30273258D25D76795C043962D6277FC
+5F11266D677AEB3FEF1C78CFCE463D8F5754DEF529F858FB63BB189AF6AC5DFD
+8CDA9EA75BCE010CC6442F7C3A2A4E82445C09F945099242F9150BF0FF432F5E
+0FBA3531493740A37ACFD827D615B51E8B31C2D04C1BADF631BCD0D88C69C3ED
+522FADE93F486BFCA28E7784C4F18D5C0810B61F1623EFC75A01A2D4CC5A6EEE
+4F1833AE27D66790747A55B544443A5A4F760D4D32658226B02AB823B50F0C27
+5AB96B1EBAB4BD292FB398E68E347D08BF931684A4B040F4080F6029ECCFD3E4
+1634F11963FB3696D7CE5BD792719D225DAD34C0FEFD258005B6D17E7AB2A3F1
+2CE99485B7EA798A0A4C82F4C62682E8DD71A8AE2DC06215E2FCAE9FCD0299ED
+71D9E2076938618EB24DDD70ABBEFE881F5C7E53A35F53E14D3A0A384F5C1887
+F3271B35DF22D585A6DBC6FD9EC887FED3FEE171B9D26D7A6D5F2D2E95B614D0
+A3A183FD19976EE569CA71BB04F0EE0B4004DD920F0E06E5EEFD7C534DC26F93
+5D089A83940C5CA041311B0C260BBDC4E507FB1EAE6E6611D92368581EEC40C6
+25456404194F3B39CCBC7B598690A63160D48E65DCEB2DBCC71838A43FE3E706
+866189E14D38E1F3F8665FD22DBA0C6632C39FE499645BEB569C27A55656EC16
+343CF42D90F6075FFCECE177E5D8AAA1AEBE69C54A5E6EE9FD63D163AB088835
+07C41D1B87E3A69D94AC3EA01203A90869FB78181265CD6FEFF5104A715B304F
+17BB57519044AF0ED113C35ED50EC5D1DDC9F64C49C54F5BE09DB5A55A15C2B8
+530CCDA044B3348279ACE2DB78B933F785D630DC5A50B5FD8B59F66CDCD5F144
+57E006AAD9C8E46F8449FE10A4FAD67399FEAD2BF4C84786999A0A202E6DE102
+4DE5A1C1AA193CCE7DDED11E061448729C2DFD77779D6137B8F16CBA1F542CAB
+DEF8D0F43E978C091F81C3E1880760E0DF6A803AD22FB18FAC19FFFCA27545C1
+A95CE57F49DC14C45042D668F486AFB17D2BC068ED6DEE387D8C1D79F6B604E1
+6B93DFFB4F740FBB246A77A20B259E0CAD2A041E49F5E8B7621BD7949C639A83
+2E22360FF4568EED8D7E5878F0ECEAD16D0C0FCEF5C60182067F65E780A85C8D
+13024A83741CEF3A0A5C7EC9AF17CC3B6A7E8E9F5CE1D9030D2B8A149870F5AE
+A6F8837E098623F4DEAFC72ABA66C2A8C451850FC4A445F7F9A5180F3A507B76
+1864229D203C2BC502FF4FAA942280C7A41AB3DCD6D6F17BC8BEE1B2778A3EDB
+7B774D000264DCE3CB4C0578637E1E5A73AFA25A514757B1E78A25B53F3A0B72
+F1C46520887103EFEEA0C8B74E03E0B2ADCF05060649B9C4AC1A38584D99482F
+3829548F3E8F8C84ABFF1FEBE6724E2B993B663B2611FDB5CEA8DB995C4841F2
+4370304BEA5FF2C7E1924DFE092F0962E2C21699BB0743B12714E9224F9AA72F
+EBB381ABCF5FCCEB0ECBFE24CFE859CE16A37A97843153B282E9EC4A7981512E
+9F6297E022C86BB50AB022EABFB2EDACB1768A07A6D6F93A37184AFAF9895B42
+F57FBB2BC89CD2CE89401AE756BEF39C9EABF986F68228A1FA92397B2AD65A9B
+4A9620866FB7935F2AFB353AAC7BD2212F03BF3CD7A675B97FD8F2E76D9AD388
+77401035D70C39FEA2D06096EC8B91B7105EB70683D6F086B4FF1B9CDD2B9ACF
+A69E0A056845E0634240DC2EAC13C086461954A90713F71FAA11F764137B9D20
+EA17D85B0B8690FB5DB9ED6DE8A59B857120401A43FF7C681B196DC34FE6DF80
+ADFF9F8044B5A73A46FD3730BDA083410904202ACFAF9B7AC9D6E1FEA68642DC
+89A8C69B8007693EA58059139C89D82376838FF3666D715F119DCCE6125BC239
+132B8F8B1910987E0431B226C86A3E75184DEF8F81D6AC4C6965CB7F609F24BB
+ACD268891727A67844B3DA9E65040DD4E6CE9EBEE720C70D419046A066A8A241
+FC17DD94FD4971A21D4B1ED809AE4E5BDF0CD2FD2C8D0E2B09162CB222B1A8F7
+E3384E2CB9B8ACD63763B11EE9FC647D74CD76F27D396285C319EC7BB85B7771
+E9984F7ABF4C7F84D1D3C458468BC86810370B8160C19EF5CECDD8B37A374ACB
+8C933C06270F2BCFCC8BC87246B7B0D83A85ECE239A435E7A46AC9E3A938A558
+603E8183620B7AED5B367F153F77F2741C21DE1C931FBB736D558191F7708DC7
+F5B5BC9291E9E283B6239E3D83B7B880DB26BD8375CD85FBB6C68800F56E65DB
+4E5D7E3DB87086C516188127FA6C9D9C874FD38DC3595CB55FFCF7A21D21E09A
+C0B8BBDDBD0412CB3C74FE85135E92AD2A74D7AFE61081BE8417446ECBB23574
+47F6A7F98BB95FED5ED34CBB36FA755A9BBE6EA87413A7F15CD0AB74E1C28731
+286FB50A23E012E26CA483CEE2835968CC6CAF6586C854E8F7786890763ABE99
+2822C1EE910AE51B0A69F39899406E993766034ABEDB8D955282B84D7194E204
+6410401868B4391890655E0B68108F8A714F41D9B0DA6CAF880E63EB84164E36
+78EAE9E37185D70D3FE3EF8600E351D9D55598327FB15BC01E49689147D5D0B8
+DF3B15523463C24329D251AB7F8B1322C6A426AFC978AA27FD1C4C2C3C0432FD
+173ED14F342C657F0A9165D09B33CB22BF9B10D7AD6FF075E0A7D00575CA6ACA
+4FC24DD249B472B0F7D812F37CD3311C63FF0ED922C287EBE368AAFC6289ECE6
+E52A0F23CC722EA14E492E475D9EAD2897BE707A3213F6442AE3974A33C69A1B
+DF8578075D47C61424B72E873752B6DB765A534007417560C8690CA7126748D5
+024FB3E9132E26267F4BEFE045B0A50265C3A6ADC2D9AC8A36C58E04C7257CA7
+82B3025A1D7D69B7833208BCC30B47F7B9DB1C15F8AFDCCC69CB42949530E38E
+8B98A151AA6BEAB2C9380560BDC236E660B9DD4B2C1A486E0E0D54039C9B7E99
+7EFF71AC4E07A863D36A09374AA63B12B671F334C32A0099EFEB2DE50697F5E4
+C2FB06A421D633CB7531826DE3FC00D9C051992C005A45B9EB4F0003EE294875
+B6EC2143C49D07E51AC0BF62CDCD56A94445116BBC872C61DE454596B0E23263
+4294F72B7AC189A3F6C9F1B726A8F422F4114D8835019867791531ED34767605
+305DB7CD7ABE8290DCBDF9C219F9EB6EF7EFECFAC3FF3B5DDA13B91D0B3CEE3E
+FE1E85E6028542067D149F727BE995B1028D451D8DF9BA109F5A01887DF4F0AE
+B786B4CB6F37AA98884083D055051D9371638591C3AC62BCCC474326986A21D0
+711D1642D457A30E49038645E6BF5ACB3B46D0A0E60FF2BCA7088ACE271E7376
+E2CC365A3180DA33977DBC15FB5C0AEEE6877ED6020267F65EFCA736EC2D6E6E
+7C57BEF4DEF28B5FCD8A33F5E634F421297006149536ADF669F9FAE0465697CE
+3B9B67A0651D21794FFFD966FD833BDE89DBFAB72465DFCDAC76038AB62E6599
+7310F1492CC4E3136AB7A06E6130690FAF1168EDB7123DABFC8180E7ACB21D1E
+A68AB0CC8765F61E087C11272DD62B1181530A819FCC15AA8ADB82E7B60C7F9E
+5D3C7EF78A61A0BBA9FE436211C4273976B53297ADA19E6B34E185F4E24C4090
+71AE1F9515C3D032CCD29EC1411780D4C90AEB08C67BCE1DCC6D45A6505ADA9A
+68EB5CB00173B5A6CF5B45856560798A9C6EDC1F43064FD6C54FECC27333B588
+9A35E1FEF53933AED516921E768FCE1C25DF66F45CC3854C9D82D4AAAAE9F1FC
+D5A0684596C00E4B48F40FD246CB91DA53A99E96BF7D72BE7E8A1F80777449D1
+2AF02ECB23EC42ACB06EF6E3F16FDECB75101CFE4C1C7EE92E942F4C6602A98E
+BC4FCB57DBB6E5F7DA3BC5501F371B6014187833547EB0D0C57AC9AAA7E27355
+CD3525C516D5E279E509BA54726DD9A3F7176552F808F6D3E73A484872E3135A
+BF56934C6AEC8008CD97EF53893871F0F8647677F33D586BF675D723A96BD6B0
+A0EFB8C5D93C9EF29509BE2398BFF3094F639E18CF7D27DA441DB5664D6B5E60
+BE9FADD4FAC3914B88871758CBCCBB38E8C4E72A4B53744A22D9894BCABB0144
+667F9E22DBAAD7934394469626CCD133AC2800882449FE082BDE41CDCDD4AC44
+7E20F083020EB46E59D9DBC744A4C7C11D5286C640DF888BE17A15E11C603435
+247B8D3892A888D88AEC22776E94861B98277FAC0F147CB0DC13CC7ED2E92C43
+CF845A58FEB59A570DA559C2A6084B1A44E2E6AE6BBA8A23512CB6AEBFA8A8A4
+5E9A5DE1BA9F175B77138469A90503D61DB62C2EBFB3B3E2D6522FF4F28B371D
+9E4A18C6195F3EC4FBFE0C9C1F1FF37FF0E1F8FC58EB7A58DBBEC681973EF716
+44ACB1C9DE4D2E82548A149E3D829DD3D5652F8A2AFD10A75DF0EB3FE4187063
+C88C7CFC0B3456AE1DBFF4D448FE2CBD205EEE3B727C76D2C7DED8926CCC1D40
+B566DF075326821926D92FF7B9F31B63F4DBE1A59B246E11FD06F0D2CA106895
+89F3259D6A9CC4611425ED3F494A3314E9A8FEDB74681B7F8E50FC2E04826A59
+9D1F6C6ECADF0B237872BE71F13D001E56CDE77D2DC8AEDD4471F56CFA9BC03B
+00B943B3C5D65B9F2FB053AC9A8930F46702B466C7D30AA7602FE1646D7EB045
+4CE04C8C9A68E9209812CAC5274DA6B5BA9431773AFE05B16AD6F07598337E93
+ED5B324AB15FC9BC52357B16A988C2D1447500534EB8A44CF6A03EB9CB247239
+A5C942951721E762A014D340858BDC57D1EAC94CB32881740C23995BFA3D91CC
+03CC1DD258A1097A29B0D0DD534D38B4BA0FB7B364BB9CDEE55569833B8900B1
+15F5B6B08FBD59C9DA5FC3E6C6CB7EA0486DB1EAF8C10177881AF188AE360C0F
+84F439766F7334A1F71F43FFEE23D0D7A545A426A95402D4FAD95354C6F79E9C
+688756C872C539E3FD53D92F12FAAC12569BAE2D75741D8FE2BAE684C61C0465
+48EA4A909FFE97239007815CC1976424C06A9D0CCA6CEE35574506604DD41A05
+3D84872C8F4D6C8653F2E3C1F90D66896EF1EDBBB78FF3FE86F92829BBC6FAA1
+6E327EBA28D0C623EF62928696D810CBFA72E12BA47AF369301489C4D7D70173
+4A71D089B71577E5338C3BCF637A1E262B187152CB5BA800E4B135690FAAF1AE
+E9464FCCEB38B1FDDCDE15060F51881EED476CD29FC0348A14EB5C48CED2D412
+B1F332B6BFE818D276C4D86E879B7B3B24FC3BA11FC22A44648B84DD304FA21C
+5A8A4CF56D1A4676A2C6C053E136A186D358DF383B9683234BA3CE3B4F2DFD58
+E78EA633572C9F03959E2B43BFA210E500B7178C23DC1E1FE9C10A693A79A29D
+E05DB8FDB7ADE08F2CE99E7B7A5A22C5EBA78D061ADC32122622B618AD22002F
+A04CC36F7D4AAAAFED1EC490CB1772D7B10E2E67A51FA830584DBE97BC0F2E20
+986B18B80DAEBEF08F5D145D8AC82AFBD8AEA7543E2FFC7623BF96D0AB99E1B5
+95245616F416A23D13B28361AB00753BA62C0609FC8FAEF12A4F5ADF11F58CE0
+C13CB24D3FB26E2D1DFF42E41BEDB3F0AB6F6970A76AB635B962C6B91D062D66
+15B1376E0E327EB4AB469A0663C86BED1C24607FE4CE5D6E09D6214B15628CB3
+BDE6A6BDF80206A25A5B07D1B55116C8858CD6E06AB272FA5104A3D852F04B2F
+D1A57F428859533DE8E5B7D61E53ECC5B85A807A680280A393CE9AF335A7BD0A
+C0568444439B3A0558D5F94FFF4DF4644F8B1FC6397D7F8A656A61394B631AF2
+77D43C8D06CB9CB020802578A1BF512353E632648FEA9400DD75E6803248D748
+7C84DE95977E95512723219029C03964441B2B96256A5B2B386A034A2D2B6586
+F0B73A5049FD96D5A54DA035F72FCE3F722584AF90452DD3B57DF93978A29FAE
+07CCE8872FD1C1F6B60886713FAC54D7493DC4391773C6B4F93F4AB4AFAD28FB
+2798AB8258448819FE0F3214C28227E080C7379F3B1F307B726EEAD0324790BA
+EE5A942DDE3E672DDCE377E0CC813A49E59465A91890E4CC6263A346B491A824
+C0355F1C2CFDB4724CABA263DA2DF1D9CD67779BA725C0FE7EFA2962541AC1AD
+CF100A8C0DBA44D54996387A7003DF1E72C32085A6F5EFC231EE1197F1F585EF
+F06BF997B2E11A2024F5628BE445B7F422697F27E267C8ED1CAB42F65BC88B7E
+6ED0C8D72C445691FBBC02D15455E9905C54B90646D3C2D3B741EBE943E31CCF
+63315D8FD762DDA3362C8CB30406E38FB38144E026E353C36B0459C65E66B79C
+AB289755A9BB7588E4C30ED78AA5EDAEEF32A81D040A60BB612E75FE23DDCBB5
+CD7F63FB545A0DBE2C9284CF11C34CC05C0291CDD3B94F2313A209A6E9778194
+7D20D65D69CCA1291694143193BF1D9E54FE17C49AAF74B94A321F2B33B3D38E
+DC8B6C10AF802C7950FFF1279728BA0E65EAABE0590EC9A41C68416A4450CEC5
+344E7C920E35BD047E87B27B019BD08550083D9ADFD3692FBFA17CDE56F7383B
+BC8FA281C6B5BDBF7F8515E60C4849E568335D06BF31025BD27D5A0747C85424
+3FFABCD15B690BD43FFAF11BF4ED7DACD462F36D50CE750399EA7AF7EB833D35
+0849EBA735755A0580DAE1FA3B8266FD53E313A9174CB4A1946013F812F63EAA
+980F4CF357F8BEAB360CE726E19D0EA211E21B7579453156E339AD3D2C251038
+57621F427D0B859BC44E2803256C5B5234DC3DB6D49DCA330AB7D71B23F05E2C
+BA6232C747B2654974E5C1A880E406DE54B95253AB8D7D2797C528C72FE124DD
+C5AABEB7E4C590C37D87D3DE9B1A0AF2B0E6305020295273E491C980CE55126E
+EC0A95B374A7308FDC9512CE9FE37C3774958EC2FDF9D77C21164FB19ED8D8C4
+B059093B6117B84502447975C4FFEF6B807EAA1252B84CFDFA006D97DE63960C
+4C3C08FF13F4B2D89AA214B170FCCFE509859C9288FF5802DA62D635AD28D72B
+2ED94065B7DBCC04677BADD74AF75CE546FB6CD31F44D7F4CC551571FF7B8A57
+873199143E332CCFBE78155F8481C6F13F973D611178766E1AFBC062C948327E
+7A7C7BBF4344960610D80EB280C58766E57928A35530F1401799A1FC18B09EEE
+24F2D584C779509D9B0A8566902158F8F0B9938951479277BE50C213E84D5DED
+FDB0FE395C41B51E3138F21BA90CFD8E68CD5364DF8FE270544D9650971689A4
+85419DDB9137CB3C1E39EBECEBE48F72EF1FD9E234CF31A9D9A20DACD5BAD570
+951EEDFF24ECA8A2D8ABCE3AED7DFA164DB03E964C964EEB02F699ACFF7DE100
+6287DA70A8D7A0E132AD534B693AC4E72F4845582A1A62FEBA4932F491A07C74
+63DD166FB3FE239B5A960DEB87EE0A2A9D542B6C1CD6F577FD573C1774A726FB
+FCF35A4A9A85F515D07454F43DB197EF8EBDC99BE2284324926A2481C770CEFE
+9408DACC976B24C46997B43F486A85FE5858A45D4C0764EE421021F5894586AF
+F04F827A024C043AD3662399D7B798972767E4300BE2018E948C6F7BE1F584A8
+30766A63B84F26CB7C1C1DFCBA6CD67654D7321DDC18C2DBFE9775E1E42A7C74
+6062387972E2C516D5C149FB94AE548CB6422B6D7ED1D68E5A972C37B974A65C
+18775FD907ED6B4F4CF83368785AA5E9F7BFFEC94C51A6754589B16DD61987D7
+C571AF11E56B7DB027F10A46110DDA458455B97CDD391E06D17D886E316401CD
+62D8E386EB0237426546FD64979566480D822D9180EDBF1FBDC1144E85ECA3C1
+954C6F95C78FC9CC567FE82FE08809C5A566D34F6DB51A83C998BCE23BA856E5
+38ABB64E22D8DC48F1E1C37C9AAE9271579E42C8B271D8B70C0600B2E660917A
+740A24C5CFFF44F5E750162F365EBD2A29C0AE993CEA7FDFDD78AA39ED3C965B
+B041691A4A57EB41622C8F2982C3C17D7FA9DFFBFCD296CF936BDB6E2904510C
+908FF6195971455E12298F861BDBD2ECE6D5D47E008CDA769ED08800B7E47CFB
+1F0767B2BDE7D437AA6938C3FA18C07EED739AD2A2EA28B4E597DD9F2C1EAD48
+7CC0661ABFCDE974A717145628406973EC6459F83335E0852982F390A0139495
+55599C104EF0F1339D25984A348982957B9267D81C446B5E09E56C70429AB895
+D0BF1A2734C0899D473418AA47D60E778980B69300B6DFF51A26FED4AA00D148
+37AC24F509CC5FACD0EAE0572E7CED539823FC1599FA6AD0FA7FAB6B0C4B1B94
+B10632EAAD840E7CEF7A35545AB6DB81F04959EE4A1DFD2996B47CF193139BB2
+C1CB75B8BD817256C67B7B8B8D6F41B42A385A2E660C5A41EC479158730C98AC
+EAC2E410226D59A948D219556CF98B755066BFF040E6A6D2286174CD87C116C9
+646F1CAF525C4392874EAD4DF0415E9B4638E6EC126F2D856447B142269FA169
+5D7C4222C422FC4728C7A05F88D0EAE70150B49731CCE7A85A81557567DC0FDC
+187D0E87739CB93AA581C3AD024ECD6E12BC2A3344665F7E596DFDE6FFFF04F1
+58CB836544FC7495A8DBC8BBBD3EA02E1A1A14D22698E9BB1AB17D43F1E33642
+5FF511C6C8A84814619C482AC70F5262B4297ADC53FEA762E58D1BF7E3515A25
+1C0316A26FA9141FB4907454E619A4D3B89E7490CF91E05C42C22CF7DAA45103
+885A3656C5C1170886F789A7237A3FF0981DB0512244A81843C755D3E81D0C31
+C79E914FD17226C7A7CB98DD5B899927FA012141DF2ACA0F5CFA9C4038CE5493
+F533DCB65E6A49AB04181566D30DA4CFD9A1DD854530BEC561A439F6B1354B66
+67CCFF1644E172CA43D6349D90A0979579B0D3DB32D9A08C0A919456922F4BFC
+CD0A493136014F530B9D8582A1EE24B0906C4D2287E897B32DD9D510009691D4
+E93A68CDA75DE51DFC4EB8BD55045E7583C91178DEE65AFD00A114A09F43A16C
+5901094FFA27F00246842E76BA2B33163172514346F4520733F0F343358DCF68
+29B5A3820C637FC639A028C80F961C302F527A2A00A5DAEFEF204832EF6C1E70
+2550F1EC5B5AF3A05826FE50656922A7AF604FB997BE8C622F0671A58AA1E698
+6DBBFF24C774D5BCC98DD2436105AE4DA658EC3AA377F905D54627D41EEAD912
+FD7E28A719B09A4BE9DBD75C065131186E1D64FBCAA4C8B70DCF6C4DB22D2EB2
+09A392658C3A23AF99A2DBB4A623E958E0F597697215A048F278241D497CC448
+F5193459E1AA66309AD7CA0897F6909037016BC3976E24443D09AA9511AF9B7E
+66BA33028C53EDB2003C11720DA394BBCA6318C13E1C11F10B7A9A52AF7A05D0
+D11844405EE6F1216FABEF4DE0845759864676DEDD8CDD81A08EFE4B8267675D
+4B971016C305D7AD7E2C2CB15E81AD0709F4D57BB534331627459156A9E79FE0
+E51169F4B0D977CDBC81139C18DC709AFCFF255BB05AAAEA7D539CF0E9E2B60F
+10E0C96116E566840FC99DB00CF7EEAE0577371861809784F5E810E5B4501383
+F4B04E3F92956DDDEA43FF563DF653899729A52A4E7133D2EB55FDE74C72745B
+667DA8CF4DDE4E15E0540A31C08D00B8F5F711330C289C5E741AB6D72313272B
+3053B23B3F78ABB23B8F82E81179A648E8676BDE7041D9EFEB6B2D4B1C5B851A
+A08F9BAEE095D2CB1992F8C9667688FB76489B60C4D3C94927779357E51DE5B8
+E0293CF92AFB6EDDD744A5EFEDC08CB52F3F11DBFDDA95A16857601D15F44A4B
+12A60E1681376ED56FBB021C6C6ABFAA9274AF78FA6FA156434E5B8F59573591
+0D03406B63704816DEB1CB7BD286330530E20E9DEE564244243CE1C35B86C63E
+C210C4591A159C27403196AACB5FAB1DAF3567B07F72113A84DDA71EF57A25E5
+696F32C68616C1209624A3B6BC8E3E762644960BC25ACE895DC6E981E60B45BF
+D7C0250F830C41C1EC111F9473CE3813E7D704375BE16D4C38D83A9FC70F198E
+1D68E23FB4BEB00EB5B6A7D4835580FCD30818BF46655D03722CEA391720E4D3
+C80FF26295CAC376B910A0E43F6A9FC856666F2F611AC40470A0BBD9CC6E22A7
+F79982D399C005815F88DE91EEFFF99A410E1AC7114063609477DC7599307DA4
+2DB6B6A6F274FC46794D70B190E267696B4A1E8BD0BC2EE5F06A7CC77844363C
+F0BE07A59DDAF0E32A3CA83FE6404179B01E7C5BFF2B76E1C7F555D5935CD7DA
+7F385A4FBCCE8BC043C868F6938FAF9CA163814E1E2BBEAB55E694E7428CD9B6
+D73569152E8C595E256590B39EE7A99627A860DC377B6EC71750A6FA64A72EE4
+F6489A1A5A234322D8DFDA02C8704419E0EF17493F9E3CDEFFC445736CDE71B9
+DCFBFF4A357C570E899C966858754C105F2908816ADB1858A0656C964F547CEE
+002C11BEBEA2A30E55A43120838E94994E390F298F7E4E6236EA30DE6CABBE0F
+03C8F3EA89130D3AF01E33E03AB649C3A731A5855601966BD09ED6F87BA768FB
+D68389A74DBCD7619FEC31503CC846099A571A35491AFD63097531DDC702CEDA
+BE9BD9E20303C0A6FE8E30B4EB2E27048A9415971E802C025D166324F4F30D25
+DE855A69D97437615DC3C1750FE021BD113C9767AA28AD16DF037D191928BE48
+0606FBB6663E07428BD2DC19EDD1D08D641DDDD8EC140AE69B31276CE7013DD4
+15EA07913F9B432735B196C137191C9C1CBEE5581732E91D1782A47913E42952
+45A9B0225D5D99514AC26E10FC7AE33BF096F2EC4E446CE08F5BB4E4F2872D9F
+56722077561BC7DAAFFBECCBF5C45DE8BC29939376EC700F52B43518C05B1002
+BD343941DE35187C54A4EC5C875F50C195471273171E4024805F0A02CDAA0158
+33891C3E50E179214D53D2EB466BB82A90516F4276E30067815FEB0585EB101D
+FA5B58A8AA860D2BAA73D94BC34D3F5CC328490F35B04B5D4D560A224AAF0EF0
+D666F1DC0750C17CDD109C63641DD41B8EF84A4247E4070C73295AE4EFCE3B66
+D2E291F745358407AF7C1FBBFC52677B33286965CAB5BE21ED85E63DB84986FE
+166515BDB9331E27C25D42D4444297A8AC93E3E5DCEC65AD75B121C80A94FC0F
+E206B5A4B6283544414FD3FE2FDC5BDAC0B3031EFC6D871E9A3D41278972C0F2
+F37FA49535AD6EA1ED801F4D00397EA06E4AC3D5D867D1F63067E74A6061615E
+C6E370D063CFADEE4EC16DA3BA0840D5F2C791A9A5DC469F519B87F6E2FB225D
+D1EB189C932D11758BC0710B1E1C4C33D9E5A17F65DECC6E920E61E53F596C8A
+9F32392078ABACA3C60E884770CF4004C5E0771C2629CFFD11F06431A57B267D
+423B07425D7C6154F4A6E2F018080C07A78672EAB2929B5A07422FA8BD1EF535
+94B4FDB61C836EF9E9642B7FCF22584B189DEEA061C3FDA4A6409274595B1AEB
+A04E3F1144B6D0F6648B4E2E8374BCFCF3235B610588292A4674488AF8498CA6
+F389E5D372C6C678F3AA03ECA699ED4D839B2BE8AA5B43E516A2850EB6532DDA
+757D3B3675AD7A37F79927DA46E1A03861F5ACC36BC19E2184AF0CB5346F9F9E
+12FA2BBB209944F4CDD5C6D255117743E7F23F03021886FF8069865093032452
+953C43B913B50DF01FC7CCC9281FDC26FD37FE1A2866B12F22973F4C57990EF9
+3504277C7091753AC591FB430F8E16E5E77A6639A8AB5A5F3DF8FCCC650AA39B
+B3EB181CB26CE6D18719E8ADDBBF5B81A9D5C4680BFE9DF5896B71344F4E17C3
+58C0576704A8E515162F615AE8CEE6E4909987FA7B0D6A5AB5F2D0146B96D3EA
+5F434D28A2244DA8460BB70E34EA42187223E9C889FFE783BAA7CC3DDA025D56
+888CC43CEB66FB6792DE7AC6753D2401487343FD66007E3C2C9D81B5B1612465
+37AF044A023A4EA768403A8FEFBE0F9160C705C333650B60F4EF63F9451F4361
+C433F5D790A37107BFFABC982E66E9191486FDEF9C640092F8B475456BE30681
+E3E1F3E216FF130CB52A0344B6CCAF3BBC8A327262A8C675A68BF3BDBE4CE061
+C4B8F33C3130DD6FB49E4DD8914FE7F7CDAF49F13956F86FA2B88E05EBF83DF2
+06711C8303A2B8877F5A0A9706A07C6505CE0C2AF5731D1A72B190FDE2FDC698
+ADAAD113AEDBCB841829B96A089750CEDA284182B360F687FE0196D4D43D4603
+EB9954331326527F77CC4B8D850B841187117413CC6B5F462C64A3959CC7693B
+E358EE5F2CE58F4EB42153F954981EDF869B5DA9559A4B69CC554FF39D4D4E77
+0C8CFFBA1E7893766F55B7D367B02E8F6C337FD10C22D60A6225048B01CF8C30
+86124E73A35DC54B2B68C97A3556AFCEA4E982D71257DAD041433A4A60B6CCC3
+98F4E749219D982CE35EE0BE0F953D908945712465097C6214746A864F4B52C3
+3A45DE9542A7F76ABE5155883D275498D6A5633800BA5B3B45078A52D321BF70
+14A506096C76DA29AE83A4D2204633D9CEC517CDC41FF04EE01790659588D0A9
+14B460FFBDCCDF568A303A5BB001CAD84BA60D4B2EF4D764F9887C21635B32FD
+E9BF53AC249BE88117CA54F8161F40B2FBEC6935D621DEE89FA7ACCF0CD1E8CB
+9ABA2079596EE31C7DB9EE1FFA7D499B43A91D117365D82852EA7DEF15F0ADD6
+AE864307FCBA01CDA5D9F17AA12551A060CD6FD4BB69EB09B99BD0D39C69D164
+E9573BC0E97BEF5D08A2936AEEE00BD6615EBECCB9DF9852A72821249EA3BED3
+020166D83242251D35B00F35BF822213BCCFA53372A5A9CC85AA0755E2840A68
+7E28C6BC6FCC151EBF5E8B74DE652794F312A6630F6FB891EEE4707E9259DC31
+230C42986B3C60AE7FDC542B7CB2180A871821D72248B2FFDF36E3A7ADED61F8
+DE6428B29CB0B98BA868E33246CF5A6BA12A6FBACA7436527FBE2FC6DF860A77
+5FA79538304FD552AB47E056AED3E3E6267BBD55CE52190DFD3932FFA9A850F5
+4CB7A7E938A32F18E7A86E94C3C365D0C4A85E64E0A749A005738C201B999B40
+8D9534D8317597A5D7169809BD0C829A5AF1B22E660BFAF7A4A1C81377B6AE44
+FC639CF5CED0AB54D0B639880CAEC0222D73B626A37C90DB982CADC78A01BCBB
+AD833E83EEF3C45F208A90B3AAAAAC8A25A28975675C64DCBE94FEAF96F07FEC
+3D8EA3DD2A0B776492BAF2F4D14A8AE1921C5DEE62BD385247A9536B2D8DDDDC
+1D51196E72804524A9175C93CB276069D7CD6555A2084A51FC13B503CEFA1835
+C572B64BB65203CD666FDD1C79DBED16B7EC15B37AD79602AFBE1A1FEC89C865
+DE6420E6790D59CDA4EFEFDF352CF101D2B64EEC253F13B3C854FC03370DB220
+227F67A5654E595E1C6E18A6A6AF672F0638D1B35C69759D347224DCC89223A8
+A9A6682EFAF9179AF0C7CDE0D9F991E89D258596E93F26819896C730526735BA
+681674536B7D1F8C243FA809DA6572601EC8E9665204C155D4EA516B61799080
+25627C82CF7E89BA81CEA8C865D0AAFBB7DA3C47E1508D985470E6A11C93AC68
+72F823BFAAB5011A760F369164158479690A2A696A4CDE768B520E75F9A9415D
+6C0CE866FB2BCACA7B9575E8F2658CCEB6E0DBFFEE00388A9BCD9706AC8D3F13
+B03109669E54C773BA71B93DD88B3972B48B1E30C6DDA9FC8F76ADF717373F85
+FD72E2095C983B1085C2436545C0260A5788641BA646755594CD06BBDEEB721F
+AB272E8145F81AFA2659029BCD25640BB9B406FD20
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -2189,30 +2297,32 @@ cleartomark
 %%EndFont 
 TeXDict begin 55387786 39139632 1000 600 600 (fr-refcard.dvi)
 @start /Fa 197[20 58[{}1 66.4176 /CMMI8 rf /Fb 134[35
-3[38 24 29 30 1[36 36 40 58 18 2[22 1[33 1[33 36 33 33
-36 51[26 45[{}18 66.4176 /CMTI8 rf /Fc 242[61 13[{}1
-49.8132 /CMSY6 rf /Fd 133[27 32 1[43 32 34 24 24 24 32
-34 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 10[45
-45 1[34 2[41 1[45 54 2[31 22 1[47 39 41 1[43 42 45 9[30
-30 30 1[30 30 30 30 1[18 21 18 4[18 14[27 4[30 30 18[{}52
+3[38 24 29 30 1[36 36 40 58 18 33 1[22 1[33 1[33 36 33
+33 36 51[26 45[{}19 66.4176 /CMTI8 rf /Fc 242[61 13[{}1
+49.8132 /CMSY6 rf /Fd 128[30 4[27 32 1[43 32 34 24 24
+24 32 34 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30
+10[45 45 1[34 2[41 1[45 54 3[22 1[47 39 41 1[43 42 45
+9[30 1[30 1[30 30 30 30 1[18 21 18 19[27 4[30 30 18[{}50
 49.8132 /CMR6 rf /Fe 135[43 1[43 45 32 32 34 43 45 41
-45 68 23 2[23 45 41 25 37 45 36 45 40 51[27 5[23 19[41
-41 5[45 12[{}26 66.4176 /CMBX8 rf /Ff 130[35 35 35 35
+45 68 23 1[25 23 45 41 25 37 45 36 45 40 12[57 45 61
+61 55 61 2[49 2[30 2[51 53 62 59 1[61 18[23 27 25[41
+41 18[{}39 66.4176 /CMBX8 rf /Ff 130[35 35 35 35 35 35
 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-35 35 35 35 35 35 35 35 35 35 35 35 35 3[35 2[35 35 35
-1[35 2[35 35 4[35 35 35 35 35 35 35 35 35 35 1[35 1[35
-4[35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 1[35 35
-35 35 35 33[{}74 66.4176 /CMTT8 rf /Fg 135[60 1[60 64
-45 45 47 60 64 57 64 95 32 2[32 64 57 35 53 64 51 64
-56 2[57 7[87 1[80 64 86 86 78 86 1[109 69 1[59 43 2[72
-75 88 83 1[87 19[38 5[32 19[57 57 5[64 12[{}43 99.6264
-/CMBX10 rf /Fh 132[35 31 37 37 51 37 39 27 28 28 37 39
-35 39 59 20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35
-3[53 2[53 1[39 52 1[48 1[53 1[44 2[25 1[55 46 48 54 51
-1[53 6[20 35 6[35 35 2[20 24 20 2[27 27 20 4[35 6[55
-7[35 35 1[20 1[59 1[39 41 11[{}61 66.4176 /CMR8 rf /Fi
-139[53 54 57 3[76 115 6[42 63 76 61 1[67 11[106 6[108
-6[108 1[90 1[99 47[69 19[{}16 119.552 /CMBX10 rf end
+35 35 35 35 35 35 35 35 35 35 35 3[35 2[35 35 35 1[35
+2[35 35 4[35 35 35 35 35 35 35 35 35 35 1[35 1[35 4[35
+35 35 35 35 35 35 35 35 35 35 35 35 35 35 1[35 35 35
+35 35 33[{}74 66.4176 /CMTT8 rf /Fg 135[60 1[60 64 45
+45 47 60 64 57 64 95 32 2[32 64 57 35 53 64 51 64 56
+2[57 7[87 1[80 64 86 86 78 86 1[109 69 1[59 43 2[72 75
+88 83 1[87 19[38 5[32 19[57 57 5[64 12[{}43 99.6264 /CMBX10
+rf /Fh 132[35 31 37 37 1[37 39 27 28 28 37 39 35 39 59
+20 1[22 20 39 35 22 31 39 31 39 35 2[35 1[35 1[43 1[53
+1[53 53 51 39 52 55 48 55 53 65 44 1[36 25 1[55 46 48
+54 51 50 53 6[20 35 6[35 35 1[35 20 24 20 2[27 27 20
+4[35 6[55 7[35 35 1[20 1[59 1[39 41 11[{}68 66.4176 /CMR8
+rf /Fi 139[53 54 57 3[76 115 6[42 63 76 61 1[67 11[106
+6[108 6[108 1[90 1[99 47[69 19[{}16 119.552 /CMBX10 rf
+end
 %%EndProlog
 %%BeginSetup
 %%Feature: *Resolution 600dpi
  @landscape end
 %%EndSetup
 %%Page: 1 1
-TeXDict begin @landscape 1 0 bop -540 -364 a Fi(Carte)46
-b(de)g(r)m(\023)-66 b(ef)m(\023)g(erence)46 b(de)g(GNU)f(Emacs)205
--280 y Fh(\(p)r(our)24 b(la)f(v)n(ersion)h(22\))-450
--101 y Fg(Lancemen)m(t)36 b(d'Emacs)-450 12 y Fh(P)n(our)22
-b(lancer)h(GNU)g(Emacs)f(22,)h(il)f(su\016t)h(de)g(tap)r(er)g(son)f
-(nom)h(:)31 b Ff(emacs)-450 106 y Fh(P)n(our)24 b(c)n(harger)g(un)g
-(\014c)n(hier)f(\022)-35 b(a)22 b(\023)-33 b(editer,)24
-b(v)n(oir)f(Fic)n(hiers,)g(ci-dessous.)-450 280 y Fg(Quitter)37
-b(Emacs)-450 434 y Fh(susp)r(end)24 b(Emacs)g(\(ou)h(l'iconi\014e)e
-(sous)h(X\))379 b Ff(C-z)-450 540 y Fh(quitter)24 b(d)n(\023)-33
-b(e\014nitiv)n(emen)n(t)26 b(Emacs)616 b Ff(C-x)36 b(C-c)-450
-731 y Fg(Fic)m(hiers)-450 866 y Fe(lire)23 b Fh(un)h(\014c)n(hier)f
-(dans)h(Emacs)694 b Ff(C-x)36 b(C-f)-450 972 y Fe(sauv)n(egarder)22
-b Fh(un)i(\014c)n(hier)g(sur)f(disque)439 b Ff(C-x)36
-b(C-s)-450 1078 y Fh(sauv)n(egarder)25 b Fe(tous)e Fh(les)g(\014c)n
-(hiers)633 b Ff(C-x)36 b(s)-450 1184 y Fe(ins)n(\023)-39
-b(erer)23 b Fh(le)h(con)n(ten)n(u)h(d'un)f(autre)g(\014c)n(hier)g(dans)
-g(ce)-379 1291 y(tamp)r(on)1204 b Ff(C-x)36 b(i)-450
-1397 y Fh(remplacer)24 b(ce)g(\014c)n(hier)g(par)f(le)h(\014c)n(hier)f
-(v)n(oulu)312 b Ff(C-x)36 b(C-v)-452 1503 y Fh(\023)-33
-b(ecrire)23 b(le)h(tamp)r(on)g(dans)g(un)g(\014c)n(hier)g(donn)n(\023)
--33 b(e)324 b Ff(C-x)36 b(C-w)-450 1609 y Fh(bascule)24
-b(du)g(mo)r(de)g(lecture-seule)h(du)f(tamp)r(on)229 b
-Ff(C-x)36 b(C-q)-450 1800 y Fg(Obtenir)h(de)g(l'aide)-450
-1913 y Fh(Le)27 b(syst)n(\022)-33 b(eme)27 b(d'aide)g(est)g(simple.)40
+TeXDict begin @landscape 1 0 bop -384 -421 a Fi(Carte)46
+b(de)g(r)m(\023)-66 b(ef)m(\023)g(erence)46 b(de)g(GNU)f(Emacs)361
+-313 y Fh(\(p)r(our)24 b(la)f(v)n(ersion)h(22\))-294
+-135 y Fg(Lancer)37 b(Emacs)-294 16 y Fh(P)n(our)24 b(lancer)f(GNU)h
+(Emacs)g(22,)f(tap)r(ez)j(juste)e(son)f(nom)h(:)31 b
+Ff(emacs)p Fh(.)-294 190 y Fg(Quitter)37 b(Emacs)-294
+342 y Fh(Susp)r(endre)25 b(Emacs)e(\(ou)i(l'iconi\014er)e(sous)g(X\))
+211 b Ff(C-z)-294 421 y Fh(Quitter)24 b(d)n(\023)-33
+b(e\014nitiv)n(emen)n(t)26 b(Emacs)527 b Ff(C-x)36 b(C-c)-294
+596 y Fg(Fic)m(hiers)-294 747 y Fe(Lire)23 b Fh(un)h(\014c)n(hier)986
+b Ff(C-x)36 b(C-f)-294 827 y Fe(Sauv)n(egarder)22 b Fh(un)i(\014c)n
+(hier)691 b Ff(C-x)36 b(C-s)-294 906 y Fh(Sauv)n(egarder)25
+b Fe(tous)e Fh(les)g(\014c)n(hiers)551 b Ff(C-x)36 b(s)-294
+986 y Fe(Ins)n(\023)-39 b(erer)24 b Fh(un)g(\014c)n(hier)g(sous)g(le)f
+(p)r(oin)n(t)h(\(curseur\))165 b Ff(C-x)36 b(i)-294 1066
+y Fh(Remplacer)24 b(le)f(\014c)n(hier)h(par)g(un)g(autre)g(\014c)n
+(hier)208 b Ff(C-x)36 b(C-v)-294 1146 y Fh(Sauv)n(egarder)25
+b(sous)f(un)g(autre)g(nom)g(de)g(\014c)n(hier)163 b Ff(C-x)36
+b(C-w)-294 1225 y Fh(Basculer)24 b(en)g(mo)r(de)g(lecture)g(seule)490
+b Ff(C-x)36 b(C-q)-294 1402 y Fg(Obtenir)h(de)g(l'aide)-294
+1553 y Fh(Le)27 b(syst)n(\022)-33 b(eme)27 b(d'aide)g(est)g(simple.)40
 b(F)-6 b(aites)27 b Ff(C-h)h Fh(\(ou)f Ff(F1)p Fh(\))h(et)f(suiv)n(ez)g
-(les)-450 1982 y(instructions.)38 b(Si)26 b(v)n(ous)g(d)n(\023)-33
-b(ebutez,)28 b(faites)e Ff(C-h)36 b(t)26 b Fh(p)r(our)g(suivre)g(un)g
-Fe(di-)-450 2048 y(dacticiel)p Fh(.)-450 2154 y(supprimer)d(la)g(fen)n
-(^)-33 b(etre)24 b(d'aide)682 b Ff(C-x)36 b(1)-450 2260
-y Fh(faire)23 b(d)n(\023)-33 b(e\014ler)24 b(la)f(fen)n(^)-33
-b(etre)24 b(d'aide)645 b Ff(C-M-v)-450 2395 y Fh(aprop)r(os)24
-b(:)35 b(mon)n(trer)24 b(les)f(commandes)i(con)n(tenan)n(t)-379
-2501 y(une)f(certaine)h(c)n(ha)-8 b(^)-27 b(\020ne)847
-b Ff(C-h)36 b(a)-450 2608 y Fh(d)n(\023)-33 b(ecrire)23
-b(la)h(fonction)g(lanc)n(\023)-33 b(ee)25 b(par)f(une)g(touc)n(he)258
-b Ff(C-h)36 b(k)-450 2714 y Fh(d)n(\023)-33 b(ecrire)23
-b(une)i(fonction)898 b Ff(C-h)36 b(f)-450 2820 y Fh(obtenir)24
-b(des)g(informations)f(sp)n(\023)-33 b(eci\014ques)25
-b(au)f(mo)r(de)124 b Ff(C-h)36 b(m)-450 3011 y Fg(R)n(\023)-55
-b(ecup)n(\023)g(eration)36 b(des)h(erreurs)-450 3165
-y Fe(a)n(v)n(orter)21 b Fh(une)k(commande)f(partiellemen)n(t)h(tap)n
-(\023)-33 b(ee)-379 3271 y(ou)24 b(ex)n(\023)-33 b(ecut)n(\023)g(ee)
-1084 b Ff(C-g)-450 3377 y Fe(r)n(\023)-39 b(ecup)n(\023)g(erer)24
-b Fh(les)f(\014c)n(hier)h(p)r(erdus)g(par)f(un)-379 3483
-y(crash)g(du)h(syst)n(\022)-33 b(eme)669 b Ff(M-x)36
-b(recover-session)-450 3590 y Fe(ann)n(uler)23 b Fh(une)h(mo)r
-(di\014cation)h(non)f(souhait)n(\023)-33 b(ee)16 b Ff(C-x)36
-b(u,)g(C-_)g Fh(ou)g Ff(C-/)-450 3696 y Fh(restaurer)24
-b(un)f(tamp)r(on)i(a)n(v)n(ec)g(son)f(con)n(ten)n(u)-379
-3802 y(initial)1015 b Ff(M-x)36 b(revert-buffer)-450
-3908 y Fh(r)n(\023)-33 b(ea\016c)n(her)24 b(un)e(\023)-33
-b(ecran)24 b(p)r(erturb)n(\023)-33 b(e)653 b Ff(C-l)-341
-4131 y Fd(c)-358 4133 y Fc(\015)20 b Fd(2007)j(F)-5 b(ree)21
+(les)-294 1633 y(instructions.)i(Si)16 b(v)n(ous)g(d)n(\023)-33
+b(ebutez,)19 b(faites)d Ff(C-h)36 b(t)17 b Fh(p)r(our)f(un)g
+Fe(didacticiel)p Fh(.)-294 1741 y(Supprimer)23 b(la)h(fen)n(^)-33
+b(etre)24 b(d'aide)599 b Ff(C-x)36 b(1)-294 1821 y Fh(F)-6
+b(aire)23 b(d)n(\023)-33 b(e\014ler)24 b(la)g(fen)n(^)-33
+b(etre)24 b(d'aide)555 b Ff(C-M-v)-294 1929 y Fh(Rec)n(herc)n(her)25
+b(des)f(commandes)g(selon)g(une)g(c)n(ha)-8 b(^)-27 b(\020ne)73
+b Ff(C-h)36 b(a)-294 2009 y Fh(D)n(\023)-33 b(ecrire)23
+b(la)h(fonction)g(asso)r(ci)n(\023)-33 b(ee)24 b(\022)-35
+b(a)24 b(une)h(touc)n(he)185 b Ff(C-h)36 b(k)-294 2088
+y Fh(D)n(\023)-33 b(ecrire)23 b(une)h(fonction)813 b
+Ff(C-h)36 b(f)-294 2168 y Fh(Obtenir)24 b(des)g(informations)f(relativ)
+n(es)h(au)g(mo)r(de)102 b Ff(C-h)36 b(m)-294 2333 y Fg(R)n(\023)-55
+b(ecup)n(\023)g(eration)36 b(sur)i(erreurs)-294 2485
+y Fe(Abandonner)24 b Fh(une)g(commande)517 b Ff(C-g)-294
+2564 y Fe(R)n(\023)-39 b(ecup)n(\023)g(erer)24 b Fh(les)f(\014c)n
+(hiers)h(apr)n(\022)-33 b(es)24 b(un)g(crash)72 b Ff(M-x)36
+b(recover-session)-294 2644 y Fe(Ann)n(uler)24 b Fh(une)g(mo)r
+(di\014cation)473 b Ff(C-x)36 b(u,)g(C-_)g Fh(ou)g Ff(C-/)-294
+2724 y Fh(Ann)n(uler)24 b(toutes)h(les)e(mo)r(di\014cations)305
+b Ff(M-x)36 b(revert-buffer)-294 2803 y Fh(R)n(\023)-33
+b(ea\016c)n(her)24 b(un)e(\023)-33 b(ecran)25 b(p)r(erturb)n(\023)-33
+b(e)557 b Ff(C-l)-294 2978 y Fg(Rec)m(herc)m(he)36 b(incr)n(\023)-55
+b(emen)m(tale)-294 3129 y Fh(Rec)n(herc)n(her)25 b(en)f(a)n(v)l(an)n(t)
+819 b Ff(C-s)-294 3209 y Fh(Rec)n(herc)n(her)25 b(en)f(arri)n(\022)-33
+b(ere)783 b Ff(C-r)-294 3289 y Fh(Rec)n(herc)n(her)25
+b(en)f(a)n(v)l(an)n(t)h(\(expression)f(rationnelle\))75
+b Ff(C-M-s)-294 3368 y Fh(Rec)n(herc)n(her)17 b(en)g(arri)n(\022)-33
+b(ere)15 b(\(expression)i(rationnelle\))71 b Ff(C-M-r)-294
+3477 y Fh(Utiliser)22 b(la)i(c)n(ha)-8 b(^)-27 b(\020ne)24
+b(de)g(rec)n(herc)n(he)h(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)166
+b Ff(M-p)-294 3556 y Fh(Utiliser)22 b(la)i(c)n(ha)-8
+b(^)-27 b(\020ne)24 b(de)g(rec)n(herc)n(he)h(suiv)l(an)n(te)241
+b Ff(M-n)-294 3636 y Fh(Quitter)24 b(la)f(rec)n(herc)n(he)i(incr)n
+(\023)-33 b(emen)n(tale)412 b Ff(RET)-294 3716 y Fh(Ann)n(uler)24
+b(l'e\013et)g(du)g(dernier)f(caract)n(\022)-33 b(ere)357
+b Ff(DEL)-294 3795 y Fh(Ann)n(uler)24 b(la)f(rec)n(herc)n(he)i(en)f
+(cours)526 b Ff(C-g)-294 3904 y Fh(Refaites)34 b Ff(C-s)h
+Fh(ou)f Ff(C-r)h Fh(p)r(our)f(r)n(\023)-33 b(ep)n(\023)g(eter)34
+b(la)g(rec)n(herc)n(he)h(dans)f(une)h(des)-294 3983 y(directions.)42
+b(En)28 b(cours)f(de)h(rec)n(herc)n(he,)h Ff(C-g)f Fh(e\013ace)h(les)e
+(derniers)f(car-)-294 4063 y(act)n(\022)-33 b(eres)25
+b(et)f(ne)g(conserv)n(e)h(que)f(le)g(pr)n(\023)-33 b(e\014xe)24
+b(d)n(\023)-33 b(ej\022)e(a)24 b(trouv)n(\023)-33 b(e.)-185
+4254 y Fd(c)-202 4256 y Fc(\015)20 b Fd(2007)j(F)-5 b(ree)21
 b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)27 b(P)n(ermissions)21
-b(au)g(dos.)27 b(v2.3)1746 -364 y Fg(Rec)m(herc)m(he)36
-b(incr)n(\023)-55 b(emen)m(tale)1746 -230 y Fh(rec)n(herc)n(her)24
-b(v)n(ers)g(l'a)n(v)l(an)n(t)823 b Ff(C-s)1746 -123 y
-Fh(rec)n(herc)n(her)24 b(v)n(ers)g(l'arri)n(\022)-33
-b(ere)787 b Ff(C-r)1746 -17 y Fh(rec)n(herc)n(her)24
-b(v)n(ers)g(l'a)n(v)l(an)n(t)g(par)g(expression)1817
-89 y(rationnelle)1115 b Ff(C-M-s)1746 196 y Fh(rec)n(herc)n(her)24
-b(v)n(ers)g(l'arri)n(\022)-33 b(ere)22 b(par)h(expression)1817
-302 y(rationnelle)1115 b Ff(C-M-r)1746 437 y Fh(s)n(\023)-33
-b(electionner)25 b(la)e(c)n(ha)-8 b(^)-27 b(\020ne)25
-b(de)f(rec)n(herc)n(he)h(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)101
-b Ff(M-p)1746 543 y Fh(s)n(\023)-33 b(electionner)25
-b(la)e(c)n(ha)-8 b(^)-27 b(\020ne)25 b(de)f(rec)n(herc)n(he)h(suiv)l
-(an)n(te)176 b Ff(M-n)1746 649 y Fh(sortir)23 b(de)h(la)f(rec)n(herc)n
-(he)i(incr)n(\023)-33 b(emen)n(tale)451 b Ff(RET)1746
-755 y Fh(ann)n(uler)24 b(l'e\013et)g(du)g(dernier)f(caract)n(\022)-33
-b(ere)446 b Ff(DEL)1746 862 y Fh(ann)n(uler)24 b(la)f(rec)n(herc)n(he)i
-(en)f(cours)615 b Ff(C-g)1746 972 y Fh(Refaites)17 b
-Ff(C-s)g Fh(ou)g Ff(C-r)h Fh(p)r(our)e(r)n(\023)-33 b(ep)n(\023)g(eter)
-18 b(la)e(rec)n(herc)n(he)i(dans)f(une)g(direction)1746
-1038 y(quelconque.)67 b(Si)34 b(Emacs)h(est)h(encore)g(en)f(train)g(de)
-g(c)n(herc)n(her,)j Ff(C-g)1746 1105 y Fh(n'ann)n(ule)24
-b(que)h(ce)f(qui)f(n'a)h(pas)e(\023)-33 b(et)n(\023)g(e)25
-b(fait.)1746 1280 y Fg(D)n(\023)-55 b(eplacemen)m(ts)1746
-1409 y Fe(en)n(tit)n(\023)-39 b(e)26 b(sur)i(laquelle)e(se)h(d)n(\023)
--39 b(eplacer)210 b(en)28 b(arri)n(\022)-39 b(ere)69
-b(en)27 b(a)n(v)-5 b(an)n(t)1746 1475 y Fh(caract)n(\022)-33
-b(ere)992 b Ff(C-b)313 b(C-f)1746 1531 y Fh(mot)1148
-b Ff(M-b)313 b(M-f)1746 1586 y Fh(ligne)1124 b Ff(C-p)313
-b(C-n)1746 1658 y Fh(aller)23 b(au)h(d)n(\023)-33 b(ebut)25
-b(\(ou)f(\022)-35 b(a)24 b(la)g(\014n\))g(de)g(la)f(ligne)105
-b Ff(C-a)313 b(C-e)1746 1727 y Fh(phrase)1069 b Ff(M-a)313
-b(M-e)1746 1793 y Fh(paragraphe)925 b Ff(M-{)313 b(M-})1746
-1858 y Fh(page)1129 b Ff(C-x)36 b([)242 b(C-x)36 b(])1746
-1922 y Fh(s-expression)901 b Ff(C-M-b)243 b(C-M-f)1746
-1988 y Fh(fonction)1021 b Ff(C-M-a)243 b(C-M-e)1746 2044
-y Fh(aller)23 b(au)h(d)n(\023)-33 b(ebut)25 b(\(ou)f(\022)-35
-b(a)24 b(la)g(\014n\))g(du)g(tamp)r(on)84 b Ff(M-<)313
-b(M->)1746 2166 y Fh(passer)24 b(\022)-35 b(a)23 b(l')n(\023)-33
-b(ecran)24 b(suiv)l(an)n(t)793 b Ff(C-v)1746 2273 y Fh(passer)24
-b(\022)-35 b(a)23 b(l')n(\023)-33 b(ecran)24 b(pr)n(\023)-33
-b(ec)n(\023)g(eden)n(t)718 b Ff(M-v)1746 2379 y Fh(d)n(\023)-33
-b(e\014ler)24 b(l')n(\023)-33 b(ecran)23 b(v)n(ers)h(la)f(droite)668
-b Ff(C-x)36 b(<)1746 2485 y Fh(d)n(\023)-33 b(e\014ler)24
-b(l')n(\023)-33 b(ecran)23 b(v)n(ers)h(la)f(gauc)n(he)640
-b Ff(C-x)36 b(>)1746 2591 y Fh(placer)24 b(la)f(ligne)h(couran)n(te)h
-(au)f(cen)n(tre)h(de)f(l')n(\023)-33 b(ecran)162 b Ff(C-u)36
-b(C-l)1746 2782 y Fg(D)n(\023)-55 b(etruire)36 b(et)i(supprimer)1746
-2911 y Fe(en)n(tit)n(\023)-39 b(e)26 b(\022)-40 b(a)26
-b(supprimer)648 b(en)28 b(arri)n(\022)-39 b(ere)69 b(en)28
-b(a)n(v)-5 b(an)n(t)1746 2981 y Fh(caract)n(\022)-33
-b(ere)25 b(\(suppression,)f(pas)g(destruction\))84 b
-Ff(DEL)313 b(C-d)1746 3045 y Fh(mot)1187 b Ff(M-DEL)243
-b(M-d)1746 3101 y Fh(ligne)24 b(\(jusqu'\022)-35 b(a)23
-b(la)h(\014n\))685 b Ff(M-0)37 b(C-k)171 b(C-k)1746 3170
-y Fh(phrase)1108 b Ff(C-x)37 b(DEL)171 b(M-k)1746 3234
-y Fh(s-expression)940 b Ff(M--)37 b(C-M-k)101 b(C-M-k)1746
-3353 y Fh(d)n(\023)-33 b(etruire)24 b(une)g Fe(r)n(\023)-39
-b(egion)890 b Ff(C-w)1746 3459 y Fh(copier)24 b(une)g(r)n(\023)-33
-b(egion)24 b(dans)g(le)f(kill)g(ring)477 b Ff(M-w)1746
-3565 y Fh(d)n(\023)-33 b(etruire)24 b(jusqu'\022)-35
-b(a)23 b(l'o)r(ccurrence)h(suiv)l(an)n(te)h(de)f Fb(c)l(ar)147
-b Ff(M-z)36 b Fb(c)l(ar)1746 3700 y Fh(r)n(\023)-33 b(ecup)n(\023)g
-(erer)24 b(la)f(derni)n(\022)-33 b(ere)24 b(c)n(hose)h(d)n(\023)-33
-b(etruite)423 b Ff(C-y)1746 3807 y Fh(remplacer)24 b(la)f(derni)n(\022)
--33 b(ere)24 b(r)n(\023)-33 b(ecup)n(\023)g(eration)24
-b(par)g(ce)g(qui)1817 3913 y(a)d(\023)-33 b(et)n(\023)g(e)25
-b(d)n(\023)-33 b(etruit)24 b(a)n(v)l(an)n(t)868 b Ff(M-y)3942
--364 y Fg(Marquer)3942 -210 y Fh(placer)24 b(la)f(marque)h(ici)901
-b Ff(C-@)36 b Fh(ou)f Ff(C-SPC)3940 -104 y Fh(\023)-33
-b(ec)n(hanger)25 b(le)f(p)r(oin)n(t)g(et)g(la)g(marque)570
-b Ff(C-x)36 b(C-x)3942 31 y Fh(placer)24 b(la)f(marque)h
-Fb(ar)l(g)30 b Fe(mots)23 b Fh(plus)g(loin)388 b Ff(M-@)3942
-137 y Fh(marquer)23 b(le)h Fe(paragraphe)755 b Ff(M-h)3942
-243 y Fh(marquer)23 b(la)h Fe(page)989 b Ff(C-x)36 b(C-p)3942
-350 y Fh(marquer)23 b(la)h Fe(s-expression)724 b Ff(C-M-@)3942
-456 y Fh(marquer)23 b(la)h Fe(fonction)864 b Ff(C-M-h)3942
-562 y Fh(marquer)23 b(tout)i(le)f Fe(tamp)r(on)730 b
-Ff(C-x)36 b(h)3942 753 y Fg(Remplacemen)m(t)g(in)m(teractif)3942
-907 y Fh(remplacer)24 b(in)n(teractiv)n(emen)n(t)h(une)g(c)n(ha)-8
-b(^)-27 b(\020ne)24 b(de)g(texte)86 b Ff(M-\045)3942
-1013 y Fh(en)24 b(utilisan)n(t)g(les)f(expressions)4013
-1119 y(rationnelles)594 b Ff(M-x)36 b(query-replace-regexp)3942
-1230 y Fh(Les)22 b(r)n(\023)-33 b(ep)r(onses)23 b(admises)f(dans)h(le)f
-(mo)r(de)h(de)g(remplacemen)n(t)h(in)n(teractif)3942
-1285 y(son)n(t)g(:)3942 1391 y Fe(remplacer)f Fh(celle-l\022)-35
-b(a,)22 b(passer)i(\022)-35 b(a)24 b(la)f(suiv)l(an)n(te)280
-b Ff(SPC)3942 1498 y Fh(remplacer)24 b(celle-l\022)-35
-b(a,)22 b(rester)i(l\022)-35 b(a)679 b Ff(,)3942 1604
-y Fe(passer)23 b Fh(\022)-35 b(a)24 b(la)g(suiv)l(an)n(te)g(sans)g
-(remplacer)400 b Ff(DEL)3942 1710 y Fh(remplacer)24 b(toutes)h(les)e
-(corresp)r(ondances)4013 1816 y(suiv)l(an)n(tes)1162
-b Ff(!)3942 1923 y Fe(rev)n(enir)23 b Fh(\022)-35 b(a)24
-b(la)f(corresp)r(ondance)i(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)279
-b Ff(^)3942 2029 y Fe(sortir)22 b Fh(du)i(remplacemen)n(t)h(in)n
-(teractif)460 b Ff(RET)3942 2135 y Fh(en)n(trer)24 b(dans)g(l')n(\023)
--33 b(edition)23 b(r)n(\023)-33 b(ecursiv)n(e)24 b(\()p
-Ff(C-M-c)h Fh(p)r(our)4013 2241 y(sortir\))1247 b Ff(C-r)3942
-2432 y Fg(F)-10 b(en)n(^)-55 b(etres)37 b(m)m(ultiples)3942
-2561 y Fh(Lorsqu'il)25 b(y)i(a)f(deux)i(commandes,)g(la)e(seconde)i
-(est)f(une)g(commande)3942 2627 y(iden)n(tique)e(\022)-35
-b(a)24 b(la)f(premi)n(\022)-33 b(ere)23 b(p)r(our)h(un)g(cadre)g(au)g
-(lieu)f(d'une)i(fen)n(^)-33 b(etre.)3942 2721 y(supprimer)23
-b(toutes)i(les)e(autres)h(fen)n(^)-33 b(etres)117 b Ff(C-x)36
-b(1)212 b(C-x)37 b(5)e(1)3942 2787 y Fh(diviser)23 b(la)g(fen)n(^)-33
-b(etre)25 b(horizon)n(talemen)n(t)184 b Ff(C-x)36 b(2)212
-b(C-x)37 b(5)e(2)3942 2843 y Fh(supprimer)23 b(cette)i(fen)n(^)-33
-b(etre)499 b Ff(C-x)36 b(0)212 b(C-x)37 b(5)e(0)3942
-2962 y Fh(diviser)23 b(la)g(fen)n(^)-33 b(etre)25 b(v)n(erticalemen)n
-(t)561 b Ff(C-x)36 b(3)3942 3096 y Fh(faire)23 b(d)n(\023)-33
-b(e\014ler)24 b(l'autre)f(fen)n(^)-33 b(etre)708 b Ff(C-M-v)3942
-3207 y Fh(placer)24 b(le)f(curseur)h(dans)g(une)g(autre)h(fen)n(^)-33
-b(etre)25 b Ff(C-x)36 b(o)212 b(C-x)37 b(5)e(o)3942 3273
-y Fh(s)n(\023)-33 b(electionner)25 b(le)e(tamp)r(on)i(dans)4025
-3338 y(l'autre)f(fen)n(^)-33 b(etre)731 b Ff(C-x)36 b(4)g(b)141
-b(C-x)37 b(5)e(b)3942 3394 y Fh(a\016c)n(her)24 b(le)g(tamp)r(on)g
-(dans)g(l'autre)g(fen)n(^)-33 b(etre)69 b Ff(C-x)36 b(4)g(C-o)71
-b(C-x)37 b(5)e(C-o)3942 3460 y Fh(c)n(harger)24 b(un)g(\014c)n(hier)g
-(dans)g(l'autre)f(fen)n(^)-33 b(etre)89 b Ff(C-x)36 b(4)g(f)141
-b(C-x)37 b(5)e(f)3942 3525 y Fh(c)n(harger)24 b(un)g(\014c)n(hier)g(en)
-g(lecture)g(seule)4025 3591 y(dans)g(l'autre)g(fen)n(^)-33
-b(etre)566 b Ff(C-x)36 b(4)g(r)141 b(C-x)37 b(5)e(r)3942
-3647 y Fh(lancer)24 b(Dired)f(dans)h(l'autre)g(fen)n(^)-33
-b(etre)246 b Ff(C-x)36 b(4)g(d)141 b(C-x)37 b(5)e(d)3942
-3703 y Fh(trouv)n(er)24 b(un)g(tag)h(dans)f(l'autre)f(fen)n(^)-33
-b(etre)179 b Ff(C-x)36 b(4)g(.)141 b(C-x)37 b(5)e(.)3942
-3821 y Fh(agrandir)23 b(la)h(fen)n(^)-33 b(etre)941 b
-Ff(C-x)36 b(^)3942 3928 y Fh(rap)r(etisser)23 b(la)h(fen)n(^)-33
-b(etre)903 b Ff(C-x)36 b({)3940 4034 y Fh(\023)-33 b(elargir)23
-b(la)g(fen)n(^)-33 b(etre)1004 b Ff(C-x)36 b(})p eop
-end
-%%Page: 2 2
-TeXDict begin @landscape 2 1 bop -450 -364 a Fg(F)-10
-b(ormater)-450 -268 y Fh(inden)n(ter)24 b(la)g Fe(ligne)f
-Fh(couran)n(te)i(\(d)n(\023)-33 b(ep)r(end)25 b(du)f(mo)r(de\))109
-b Ff(TAB)-450 -161 y Fh(inden)n(ter)24 b(la)g Fe(r)n(\023)-39
-b(egion)22 b Fh(couran)n(te)k(\(d)n(\023)-33 b(ep)r(end)25
-b(du)-379 -55 y(mo)r(de\))1247 b Ff(C-M-\\)-450 51 y
-Fh(inden)n(ter)24 b(la)g Fe(s-expression)g Fh(couran)n(te)h(\(d)n(\023)
--33 b(ep)r(end)-379 157 y(du)24 b(mo)r(de\))1145 b Ff(C-M-q)-450
-264 y Fh(inden)n(ter)24 b(la)g(r)n(\023)-33 b(egion)24
-b(sur)f Fb(ar)l(g)30 b Fh(colonnes)443 b Ff(C-x)36 b(TAB)-450
-389 y Fh(ins)n(\023)-33 b(erer)23 b(un)h(newline)g(apr)n(\022)-33
-b(es)23 b(le)h(p)r(oin)n(t)507 b Ff(C-o)-450 495 y Fh(d)n(\023)-33
-b(eplacer)24 b(le)g(reste)g(de)g(la)f(ligne)h(v)n(ers)g(le)f(bas)326
-b Ff(C-M-o)-450 601 y Fh(supprimer)23 b(les)g(lignes)g(blanc)n(hes)i
-(autour)g(du)e(p)r(oin)n(t)105 b Ff(C-x)36 b(C-o)-450
-708 y Fh(joindre)23 b(la)h(ligne)f(\022)-35 b(a)24 b(la)f(pr)n(\023)-33
-b(ec)n(\023)g(eden)n(te)26 b(\(\022)-35 b(a)25 b(la)e(suiv)l(an)n(te)
--379 814 y(a)n(v)n(ec)h(arg\))1161 b Ff(M-^)-450 920
-y Fh(supprimer)23 b(tous)h(les)f(espaces)i(autour)g(du)f(p)r(oin)n(t)
-184 b Ff(M-\\)-450 1027 y Fh(mettre)24 b(exactemen)n(t)j(un)d(espace)h
-(\022)-35 b(a)24 b(l'emplacemen)n(t)-379 1133 y(du)g(p)r(oin)n(t)1178
-b Ff(M-SPC)-450 1258 y Fh(remplir)22 b(le)i(paragraphe)845
-b Ff(M-q)-450 1364 y Fh(placer)24 b(la)f(marge)h(droite)833
-b Ff(C-x)36 b(f)-450 1471 y Fh(d)n(\023)-33 b(e\014nir)24
-b(le)f(pr)n(\023)-33 b(e\014xe)24 b(par)g(lequel)g(commencera)-379
-1577 y(c)n(haque)h(ligne)1060 b Ff(C-x)36 b(.)-450 1702
-y Fh(d)n(\023)-33 b(e\014nir)24 b(la)f(fon)n(te)1061
-b Ff(M-o)-450 1845 y Fg(Mo)s(di\014er)37 b(la)h(casse)-450
-1941 y Fh(mettre)24 b(le)g(mot)g(en)g(ma)t(juscules)634
-b Ff(M-u)-450 2048 y Fh(mettre)24 b(le)g(mot)g(en)g(min)n(uscules)638
-b Ff(M-l)-450 2154 y Fh(mettre)24 b(le)g(mot)g(en)g(capitales)704
-b Ff(M-c)-450 2279 y Fh(mettre)24 b(la)g(r)n(\023)-33
-b(egion)24 b(en)g(ma)t(juscules)563 b Ff(C-x)36 b(C-u)-450
-2386 y Fh(mettre)24 b(la)g(r)n(\023)-33 b(egion)24 b(en)g(min)n
-(uscules)567 b Ff(C-x)36 b(C-l)-450 2529 y Fg(Le)i(mini-tamp)s(on)-450
-2620 y Fh(Les)24 b(touc)n(hes)h(suiv)l(an)n(tes)g(son)n(t)f
-(utilisables)f(dans)h(le)g(mini-tamp)r(on)f(:)-450 2729
-y(compl)n(\023)-33 b(eter)24 b(autan)n(t)i(que)e(p)r(ossible)587
-b Ff(TAB)-450 2835 y Fh(compl)n(\023)-33 b(eter)24 b(un)g(mot)963
-b Ff(SPC)-450 2941 y Fh(compl)n(\023)-33 b(eter)24 b(et)h(ex)n(\023)-33
-b(ecuter)848 b Ff(RET)-450 3048 y Fh(mon)n(trer)24 b(les)f(compl)n
-(\023)-33 b(etions)25 b(p)r(ossibles)481 b Ff(?)-450
-3154 y Fh(rec)n(herc)n(her)24 b(l'en)n(tr)n(\023)-33
-b(ee)24 b(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)26 b(du)e(mini-tamp)r
-(on)74 b Ff(M-p)-450 3260 y Fh(rec)n(herc)n(her)24 b(l'en)n(tr)n(\023)
--33 b(ee)24 b(suiv)l(an)n(te)h(du)f(mini-tamp)r(on)-379
-3367 y(ou)g(le)f(d)n(\023)-33 b(efaut)1075 b Ff(M-n)-450
-3473 y Fh(rec)n(herc)n(her)24 b(\022)-35 b(a)24 b(reb)r(ours)g(par)f
-(expr.)35 b(rationnelle)-379 3579 y(dans)24 b(l'historique)931
-b Ff(M-r)-450 3685 y Fh(rec)n(herc)n(her)24 b(v)n(ers)g(l'a)n(v)l(an)n
-(t)g(par)g(expr.)35 b(rationnelle)-379 3792 y(dans)24
-b(l'historique)931 b Ff(M-s)-450 3898 y Fh(ann)n(uler)24
-b(la)f(commande)852 b Ff(C-g)-450 3999 y Fh(F)-6 b(aites)39
+b(au)g(dos.)27 b(v2.3)1902 -421 y Fg(D)n(\023)-55 b(eplacemen)m(ts)1902
+-270 y Fe(Ob)5 b(jet)27 b(sur)g(lequel)g(se)g(d)n(\023)-39
+b(eplacer)102 b(En)28 b(arri)n(\022)-39 b(ere)69 b(En)28
+b(a)n(v)-5 b(an)n(t)1902 -190 y Fh(Caract)n(\022)-33
+b(ere)803 b Ff(C-b)329 b(C-f)1902 -110 y Fh(Mot)973 b
+Ff(M-b)329 b(M-f)1902 -31 y Fh(Ligne)931 b Ff(C-p)329
+b(C-n)1902 49 y Fh(Aller)22 b(en)j(d)n(\023)-33 b(ebut/\014n)25
+b(de)f(la)g(ligne)200 b Ff(C-a)329 b(C-e)1902 129 y Fh(Phrase)891
+b Ff(M-a)329 b(M-e)1902 208 y Fh(P)n(aragraphe)749 b
+Ff(M-{)329 b(M-})1902 288 y Fh(P)n(age)953 b Ff(C-x)36
+b([)258 b(C-x)36 b(])1902 368 y Fh(S-expression)721 b
+Ff(C-M-b)259 b(C-M-f)1902 448 y Fh(F)-6 b(onction)834
+b Ff(C-M-a)259 b(C-M-e)1902 527 y Fh(Aller)22 b(en)j(d)n(\023)-33
+b(ebut/\014n)25 b(du)f(tamp)r(on)180 b Ff(M-<)329 b(M->)1902
+636 y Fh(P)n(asser)23 b(\022)-35 b(a)24 b(l')n(\023)-33
+b(ecran)24 b(suiv)l(an)n(t)715 b Ff(C-v)1902 715 y Fh(P)n(asser)23
+b(\022)-35 b(a)24 b(l')n(\023)-33 b(ecran)24 b(pr)n(\023)-33
+b(ec)n(\023)g(eden)n(t)640 b Ff(M-v)1902 795 y Fh(F)-6
+b(aire)23 b(d)n(\023)-33 b(e\014ler)24 b(l')n(\023)-33
+b(ecran)24 b(v)n(ers)f(la)h(gauc)n(he)391 b Ff(C-x)36
+b(<)1902 875 y Fh(F)-6 b(aire)23 b(d)n(\023)-33 b(e\014ler)24
+b(l')n(\023)-33 b(ecran)24 b(v)n(ers)f(la)h(droite)419
+b Ff(C-x)36 b(>)1902 954 y Fh(Placer)24 b(la)f(ligne)h(couran)n(te)h
+(au)f(cen)n(tre)h(de)f(l')n(\023)-33 b(ecran)82 b Ff(C-u)36
+b(C-l)1902 1129 y Fg(D)n(\023)-55 b(etruire)36 b(et)i(supprimer)1902
+1280 y Fe(Ob)5 b(jet)26 b(\022)-40 b(a)26 b(supprimer)439
+b(En)28 b(arri)n(\022)-39 b(ere)69 b(En)28 b(a)n(v)-5
+b(an)n(t)1902 1360 y Fh(Caract)n(\022)-33 b(ere)25 b(\(suppression\))
+370 b Ff(DEL)329 b(C-d)1902 1439 y Fh(Mot)973 b Ff(M-DEL)259
+b(M-d)1902 1519 y Fh(Ligne)24 b(\(jusqu'au)g(d)n(\023)-33
+b(ebut/\014n\))282 b Ff(M-0)36 b(C-k)188 b(C-k)1902 1599
+y Fh(Phrase)891 b Ff(C-x)36 b(DEL)188 b(M-k)1902 1679
+y Fh(S-expression)721 b Ff(M--)36 b(C-M-k)118 b(C-M-k)1902
+1787 y Fh(D)n(\023)-33 b(etruire)23 b(une)i Fe(r)n(\023)-39
+b(egion)804 b Ff(C-w)1902 1867 y Fh(Copier)23 b(une)i(r)n(\023)-33
+b(egion)24 b(dans)g(le)f Fb(kil)t(l)i(ring)383 b Ff(M-w)1902
+1946 y Fh(D)n(\023)-33 b(etruire)21 b(jusqu'\022)-35
+b(a)22 b(l'o)r(ccurrence)g(suiv)l(an)n(te)h(de)f Fb(c)l(ar)71
+b Ff(M-z)36 b Fb(c)l(ar)1902 2055 y Fh(R)n(\023)-33 b(ecup)n(\023)g
+(erer)24 b(la)g(derni)n(\022)-33 b(ere)23 b(r)n(\023)-33
+b(egion)24 b(d)n(\023)-33 b(etruite)303 b Ff(C-y)1902
+2134 y Fh(R)n(\023)-33 b(ecup)n(\023)g(erer)24 b(la)g(r)n(\023)-33
+b(egion)23 b(d)n(\023)-33 b(etruite)25 b(pr)n(\023)-33
+b(ec)n(\023)g(eden)n(te)224 b Ff(M-y)1902 2310 y Fg(Marquer)1902
+2461 y Fh(Placer)24 b(la)f(marque)h(au)g(p)r(oin)n(t)634
+b Ff(C-@)36 b Fh(ou)g Ff(C-SPC)1908 2524 y Fh(\023)1902
+2541 y(Ec)n(hanger)25 b(le)e(p)r(oin)n(t)i(et)f(la)f(marque)483
+b Ff(C-x)36 b(C-x)1902 2649 y Fh(Placer)24 b(la)f(marque)h(un)g
+Fe(mot)f Fh(plus)g(loin)363 b Ff(M-@)1902 2729 y Fh(Marquer)23
+b(le)h Fe(paragraphe)678 b Ff(M-h)1902 2808 y Fh(Marquer)23
+b(la)h Fe(page)912 b Ff(C-x)36 b(C-p)1902 2888 y Fh(Marquer)23
+b(la)h Fe(s-expression)647 b Ff(C-M-@)1902 2968 y Fh(Marquer)23
+b(la)h Fe(fonction)787 b Ff(C-M-h)1902 3048 y Fh(Marquer)23
+b(tout)i(le)f Fe(tamp)r(on)653 b Ff(C-x)36 b(h)1902 3222
+y Fg(Remplacemen)m(t)g(in)m(teractif)1902 3373 y Fh(Remplacer)24
+b(une)g(c)n(ha)-8 b(^)-27 b(\020ne)25 b(de)f(texte)492
+b Ff(M-\045)1985 3453 y Fh(\022)-35 b(a)24 b(l'aide)f(d'expr.)31
+b(rationnelles)145 b Ff(M-x)36 b(query-replace-regexp)1902
+3561 y Fh(R)n(\023)-33 b(ep)r(onses)33 b(p)r(ossibles)e(p)r(our)g(c)n
+(haque)j(o)r(ccurrence)f(dans)f(le)f(mo)r(de)h(de)1902
+3641 y(remplacemen)n(t)25 b(in)n(teractif)f(:)1902 3749
+y Fe(Remplacer)f Fh(celle-l\022)-35 b(a,)23 b(passer)g(\022)-35
+b(a)24 b(la)f(suiv)l(an)n(te)182 b Ff(SPC)1902 3829 y
+Fh(Remplacer)24 b(celle-l\022)-35 b(a,)23 b(rester)g(l\022)-35
+b(a)584 b Ff(,)1902 3909 y Fe(P)n(asser)23 b Fh(\022)-35
+b(a)24 b(la)g(suiv)l(an)n(te)g(sans)g(remplacer)321 b
+Ff(DEL)1902 3988 y Fh(Remplacer)24 b(toutes)h(les)e(o)r(ccurrences)i
+(suiv)l(an)n(tes)119 b Ff(!)1902 4068 y Fe(Rev)n(enir)23
+b Fh(\022)-35 b(a)24 b(l'o)r(ccurrence)g(pr)n(\023)-33
+b(ec)n(\023)g(eden)n(te)365 b Ff(^)1902 4148 y Fe(Quitter)23
+b Fh(le)g(remplacemen)n(t)i(in)n(teractif)348 b Ff(RET)1908
+4211 y Fe(\023)1902 4227 y(Editer)23 b Fh(a)n(v)l(an)n(t)i(de)f
+(reprendre)g(\()p Ff(C-M-c)i Fh(:)31 b(sortir\))119 b
+Ff(C-r)4098 -421 y Fg(F)-10 b(en)n(^)-55 b(etres)37 b(m)m(ultiples)4098
+-299 y Fh(Lorsqu'il)17 b(y)h(a)g(deux)h(commandes,)h(la)e(seconde)i
+(est)e(celle)g(qui)g(concerne)4098 -219 y(non)24 b(pas)g(les)f(fen)n(^)
+-33 b(etres)25 b(mais)e(les)g(cadres.)4098 -118 y(Supprimer)g(toutes)i
+(les)f(autres)g(fen)n(^)-33 b(etres)105 b Ff(C-x)36 b(1)212
+b(C-x)37 b(5)e(1)4098 -38 y Fh(Supprimer)23 b(cette)j(fen)n(^)-33
+b(etre)487 b Ff(C-x)36 b(0)212 b(C-x)37 b(5)e(0)4098
+42 y Fh(Diviser)23 b(la)g(fen)n(^)-33 b(etre)24 b(horizon)n(talemen)n
+(t)170 b Ff(C-x)36 b(2)212 b(C-x)37 b(5)e(2)4098 143
+y Fh(Diviser)23 b(la)g(fen)n(^)-33 b(etre)24 b(v)n(erticalemen)n(t)476
+b Ff(C-x)36 b(3)4098 244 y Fh(F)-6 b(aire)23 b(d)n(\023)-33
+b(e\014ler)24 b(l'autre)g(fen)n(^)-33 b(etre)618 b Ff(C-M-v)4098
+345 y Fh(S)n(\023)-33 b(electionner)25 b(une)f(autre)h(fen)n(^)-33
+b(etre)291 b Ff(C-x)36 b(o)212 b(C-x)37 b(5)e(o)4098
+425 y Fh(Choisir)23 b(un)g(tamp)r(on)i(\(autre)g(fen)n(^)-33
+b(etre\))160 b Ff(C-x)36 b(4)g(b)141 b(C-x)37 b(5)e(b)4098
+504 y Fh(A\016c)n(her)24 b(un)g(tamp)r(on)g(\(autre)h(fen)n(^)-33
+b(etre\))141 b Ff(C-x)36 b(4)g(C-o)71 b(C-x)37 b(5)e(C-o)4098
+584 y Fh(Lire)23 b(un)h(\014c)n(hier)g(\(autre)h(fen)n(^)-33
+b(etre\))308 b Ff(C-x)36 b(4)g(f)141 b(C-x)37 b(5)e(f)4181
+664 y Fh(en)24 b(lecture)g(seule)657 b Ff(C-x)36 b(4)g(r)141
+b(C-x)37 b(5)e(r)4098 743 y Fh(Lancer)24 b(Dired)f(\(autre)i(fen)n(^)
+-33 b(etre\))339 b Ff(C-x)36 b(4)g(d)141 b(C-x)37 b(5)e(d)4098
+823 y Fh(T)-6 b(rouv)n(er)24 b(un)g(tag)g(\(autre)h(fen)n(^)-33
+b(etre\))278 b Ff(C-x)36 b(4)g(.)141 b(C-x)37 b(5)e(.)4098
+924 y Fh(Agrandir)23 b(la)g(fen)n(^)-33 b(etre)25 b(v)n(erticalemen)n
+(t)416 b Ff(C-x)36 b(^)4098 1004 y Fh(R)n(\023)-33 b(eduire)24
+b(la)f(fen)n(^)-33 b(etre)24 b(horizon)n(talemen)n(t)373
+b Ff(C-x)36 b({)4098 1084 y Fh(Agrandir)23 b(la)g(fen)n(^)-33
+b(etre)25 b(horizon)n(talemen)n(t)336 b Ff(C-x)36 b(})4098
+1214 y Fg(F)-10 b(ormater)4098 1336 y Fh(Inden)n(ter)25
+b(la)f Fe(ligne)f Fh(couran)n(te)i(\(selon)f(le)g(mo)r(de\))127
+b Ff(TAB)4098 1416 y Fh(Inden)n(ter)25 b(la)f Fe(r)n(\023)-39
+b(egion)22 b Fh(couran)n(te)j(\(selon)g(le)e(mo)r(de\))76
+b Ff(C-M-\\)4098 1496 y Fh(Inden)n(ter)21 b(la)d Fe(s-expr.)30
+b Fh(couran)n(te)21 b(\(selon)e(le)g(mo)r(de\))72 b Ff(C-M-q)4098
+1576 y Fh(Inden)n(ter)25 b(la)f(r)n(\023)-33 b(egion)23
+b(sur)h(une)g(colonne)386 b Ff(C-x)36 b(TAB)4098 1655
+y Fh(Ins)n(\023)-33 b(erer)24 b(un)g(retour)f(\022)-35
+b(a)24 b(la)g(ligne)f(apr)n(\022)-33 b(es)24 b(le)f(p)r(oin)n(t)168
+b Ff(C-o)4098 1735 y Fh(D)n(\023)-33 b(eplacer)24 b(le)g(reste)g(de)g
+(la)f(ligne)h(v)n(ers)f(le)h(bas)240 b Ff(C-M-o)4098
+1815 y Fh(Supprimer)23 b(les)g(lignes)h(vierges)g(autour)g(du)g(p)r
+(oin)n(t)73 b Ff(C-x)36 b(C-o)4098 1894 y Fh(Joindre)20
+b(\022)-35 b(a)20 b(la)f(ligne)h(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)
+22 b(\(suiv.)30 b(a)n(v)n(ec)21 b Fb(ar)l(g)6 b Fh(\))71
+b Ff(M-^)4098 1974 y Fh(Supprimer)23 b(tous)h(les)g(espaces)h(autour)f
+(du)g(p)r(oin)n(t)102 b Ff(M-\\)4098 2054 y Fh(Mettre)24
+b(exactemen)n(t)j(une)d(espace)h(au)f(p)r(oin)n(t)223
+b Ff(M-SPC)4098 2155 y Fh(F)-6 b(ormater)24 b(le)f(paragraphe)715
+b Ff(M-q)4098 2235 y Fh(Placer)24 b(la)f(marge)h(droite)g(\022)-35
+b(a)24 b Fb(ar)l(g)30 b Fh(colonnes)287 b Ff(C-u)36 b
+Fb(ar)l(g)42 b Ff(C-x)36 b(f)4098 2314 y Fh(D)n(\023)-33
+b(e\014nir)23 b(le)h(pr)n(\023)-33 b(e\014xe)24 b(des)g(lignes)607
+b Ff(C-x)36 b(.)4098 2415 y Fh(D)n(\023)-33 b(e\014nir)23
+b(la)h(fon)n(te)975 b Ff(M-o)4098 2538 y Fg(Mo)s(di\014er)37
+b(la)h(casse)4098 2660 y Fh(Mettre)24 b(le)g(mot)g(en)g(capitales)627
+b Ff(M-u)4098 2740 y Fh(Mettre)24 b(le)g(mot)g(en)g(min)n(uscules)561
+b Ff(M-l)4098 2819 y Fh(Mettre)24 b(une)h(ma)t(juscule)e(au)h(mot)523
+b Ff(M-c)4098 2920 y Fh(Mettre)24 b(la)g(r)n(\023)-33
+b(egion)23 b(en)i(capitales)556 b Ff(C-x)36 b(C-u)4098
+3000 y Fh(Mettre)24 b(la)g(r)n(\023)-33 b(egion)23 b(en)i(min)n
+(uscules)490 b Ff(C-x)36 b(C-l)4098 3132 y Fg(Le)i(mini-tamp)s(on)4098
+3254 y Fh(Dans)24 b(le)f(mini-tamp)r(on)h(:)4098 3355
+y(Compl)n(\023)-33 b(eter)24 b(autan)n(t)h(que)g(p)r(ossible)496
+b Ff(TAB)4098 3435 y Fh(Compl)n(\023)-33 b(eter)24 b(un)g(mot)872
+b Ff(SPC)4098 3514 y Fh(Compl)n(\023)-33 b(eter)24 b(et)g(ex)n(\023)-33
+b(ecuter)758 b Ff(RET)4098 3594 y Fh(Mon)n(trer)23 b(les)h(compl)n
+(\022)-33 b(etemen)n(ts)25 b(p)r(ossibles)313 b Ff(?)4098
+3674 y Fh(Utiliser)22 b(l'en)n(tr)n(\023)-33 b(ee)24
+b(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)26 b(du)e(mini-tamp)r(on)91
+b Ff(M-p)4098 3753 y Fh(Utiliser)22 b(l'en)n(tr)n(\023)-33
+b(ee)24 b(suiv)l(an)n(te)h(du)f(mini-tamp)r(on)167 b
+Ff(M-n)4098 3833 y Fh(Rec)n(herc)n(her)25 b(en)f(arri)n(\022)-33
+b(ere)22 b(dans)j(l'historique)251 b Ff(M-r)4098 3913
+y Fh(Rec)n(herc)n(her)25 b(en)f(a)n(v)l(an)n(t)h(dans)f(l'historique)
+285 b Ff(M-s)4098 3993 y Fh(Quitter)24 b(en)g(ann)n(ulan)n(t)h(la)f
+(commande)394 b Ff(C-g)4098 4094 y Fh(F)-6 b(aites)39
 b Ff(C-x)d(ESC)g(ESC)j Fh(p)r(our)d(\023)-33 b(editer)39
 b(et)g(r)n(\023)-33 b(ep)n(\023)g(eter)39 b(la)f(derni)n(\022)-33
-b(ere)38 b(com-)-450 4064 y(mande)33 b(a)n(y)n(an)n(t)g(utilis)n(\023)
--33 b(e)32 b(le)g(minitamp)r(on.)56 b(F)-6 b(aites)32
-b Ff(F10)h Fh(p)r(our)f(activ)n(er)-450 4130 y(la)23
-b(barre)h(de)g(men)n(u)g(utilisan)n(t)g(le)f(minitamp)r(on.)1656
--364 y Fi(Carte)46 b(de)g(r)m(\023)-66 b(ef)m(\023)g(erence)46
-b(de)g(GNU)f(Emacs)1746 -175 y Fg(T)-10 b(amp)s(ons)1746
--21 y Fh(s)n(\023)-33 b(electionner)25 b(un)f(autre)g(tamp)r(on)604
-b Ff(C-x)36 b(b)1744 85 y Fh(\023)-33 b(en)n(um)n(\023)g(erer)24
-b(tous)g(les)f(tamp)r(ons)684 b Ff(C-x)36 b(C-b)1746
-192 y Fh(supprimer)23 b(un)h(tamp)r(on)839 b Ff(C-x)36
-b(k)1746 382 y Fg(T)-10 b(ransp)s(oser)1746 535 y Fh(transp)r(oser)24
-b(des)g Fe(caract)n(\022)-39 b(eres)687 b Ff(C-t)1746
-642 y Fh(transp)r(oser)24 b(des)g Fe(mots)872 b Ff(M-t)1746
-748 y Fh(transp)r(oser)24 b(des)g Fe(lignes)844 b Ff(C-x)36
-b(C-t)1746 854 y Fh(transp)r(oser)24 b(des)g Fe(s-expressions)585
-b Ff(C-M-t)1746 1045 y Fg(V)n(\023)-55 b(eri\014er)37
-b(l'orthographe)1746 1199 y Fh(v)n(\023)-33 b(eri\014er)23
-b(l'orthographe)i(du)f(mot)g(couran)n(t)359 b Ff(M-$)1746
-1305 y Fh(v)n(\023)-33 b(eri\014er)23 b(l'orthographe)i(de)f(tous)g
-(les)f(mots)1817 1411 y(d'une)h(r)n(\023)-33 b(egion)816
-b Ff(M-x)36 b(ispell-region)1746 1517 y Fh(v)n(\023)-33
-b(eri\014er)23 b(l'orthographe)i(de)f(tout)h(le)e(tamp)r(on)37
-b Ff(M-x)f(ispell-buffer)1746 1707 y Fg(T)-10 b(ags)1746
-1861 y Fh(trouv)n(er)24 b(un)g(tag)h(\(une)f(d)n(\023)-33
-b(e\014nition\))564 b Ff(M-.)1746 1967 y Fh(trouv)n(er)24
-b(l'o)r(ccurrence)g(suiv)l(an)n(te)h(du)f(tag)400 b Ff(C-u)36
-b(M-.)1746 2074 y Fh(sp)n(\023)-33 b(eci\014er)24 b(un)g(nouv)n(eau)h
-(\014c)n(hier)f(de)g(tags)187 b Ff(M-x)36 b(visit-tags-table)1746
-2208 y Fh(rec)n(herc)n(her)24 b(par)g(expr.)35 b(rationnelles)24
-b(dans)1817 2315 y(tous)g(les)f(\014c)n(hiers)h(du)g(tableau)h(de)f
-(tags)131 b Ff(M-x)36 b(tags-search)1746 2421 y Fh(lancer)24
-b(un)g(remplacemen)n(t)h(in)n(teractif)f(sur)1817 2527
-y(tous)g(les)f(\014c)n(hiers)652 b Ff(M-x)37 b(tags-query-replace)1746
-2633 y Fh(con)n(tin)n(uer)25 b(la)e(derni)n(\022)-33
-b(ere)24 b(rec)n(herc)n(he)h(de)f(tags)g(ou)g(le)1817
-2740 y(remplacemen)n(t)g(in)n(teractif)710 b Ff(M-,)1746
-2930 y Fg(Shells)1746 3065 y Fh(ex)n(\023)-33 b(ecuter)25
-b(une)g(commande)g(shell)606 b Ff(M-!)1746 3171 y Fh(lancer)24
-b(une)g(commande)h(shell)e(sur)g(la)h(r)n(\023)-33 b(egion)271
-b Ff(M-|)1746 3277 y Fh(\014ltrer)23 b(la)h(r)n(\023)-33
-b(egion)23 b(a)n(v)n(ec)i(une)f(commande)h(shell)246
-b Ff(C-u)36 b(M-|)1746 3384 y Fh(lancer)24 b(un)g(shell)f(dans)h(la)f
-(fen)n(^)-33 b(etre)25 b Ff(*shell*)318 b(M-x)36 b(shell)3942
--364 y Fg(Rectangles)3942 -210 y Fh(copier)24 b(le)f(rectangle)i(dans)f
-(le)g(registre)459 b Ff(C-x)36 b(r)f(r)3942 -104 y Fh(d)n(\023)-33
-b(etruire)24 b(le)f(rectangle)893 b Ff(C-x)36 b(r)f(k)3942
-2 y Fh(r)n(\023)-33 b(ecup)n(\023)g(erer)24 b(le)f(rectangle)850
-b Ff(C-x)36 b(r)f(y)3942 109 y Fh(ouvrir)23 b(le)g(rectangle,)i(en)f(d)
-n(\023)-33 b(ecalan)n(t)25 b(le)f(texte)h(\022)-35 b(a)4013
-215 y(droite)1260 b Ff(C-x)36 b(r)f(o)3942 321 y Fh(vider)23
-b(le)h(rectangle)981 b Ff(C-x)36 b(r)f(c)3942 427 y Fh(pr)n(\023)-33
-b(e\014xer)24 b(c)n(haque)h(ligne)f(a)n(v)n(ec)h(une)f(c)n(ha)-8
-b(^)-27 b(\020ne)369 b Ff(C-x)36 b(r)f(t)3942 618 y Fg(Abr)n(\023)-55
-b(eviations)3942 752 y Fh(a)t(jouter)24 b(une)g(abr)n(\023)-33
-b(eviation)25 b(globale)547 b Ff(C-x)36 b(a)f(g)3942
-859 y Fh(a)t(jouter)24 b(une)g(abr)n(\023)-33 b(eviation)25
-b(lo)r(cale)f(au)g(mo)r(de)300 b Ff(C-x)36 b(a)f(l)3942
-965 y Fh(a)t(jouter)24 b(une)g(expansion)h(globale)f(p)r(our)g(cette)
-4013 1071 y(abr)n(\023)-33 b(eviation)1094 b Ff(C-x)36
-b(a)f(i)h(g)3942 1178 y Fh(a)t(jouter)24 b(une)g(expansion)h(lo)r(cale)
-f(au)g(mo)r(de)g(p)r(our)4013 1284 y(cette)h(abr)n(\023)-33
-b(eviation)922 b Ff(C-x)36 b(a)f(i)h(l)3942 1390 y Fh(faire)23
-b(une)h(expansion)h(explicite)f(de)g(cette)4013 1496
-y(abr)n(\023)-33 b(eviation)1094 b Ff(C-x)36 b(a)f(e)3942
-1631 y Fh(faire)23 b(une)h(expansion)h(dynamique)g(du)f(mot)4013
-1737 y(pr)n(\023)-33 b(ec)n(\023)g(eden)n(t)1146 b Ff(M-/)3942
-1928 y Fg(Expressions)39 b(rationnelles)3942 2082 y Fh(un)24
-b(unique)g(caract)n(\022)-33 b(ere)25 b(quelconque,)g(sauf)f(une)g
-(\014n)4013 2188 y(de)g(ligne)1201 b Ff(.)70 b Fh(\(p)r(oin)n(t\))3942
-2294 y(z)n(\023)-33 b(ero)24 b(r)n(\023)-33 b(ep)n(\023)g(etition)25
-b(ou)f(plus)816 b Ff(*)3942 2401 y Fh(une)24 b(r)n(\023)-33
-b(ep)n(\023)g(etition)25 b(ou)f(plus)832 b Ff(+)3942
-2507 y Fh(z)n(\023)-33 b(ero)24 b(ou)g(une)g(r)n(\023)-33
-b(ep)n(\023)g(etition)834 b Ff(?)3942 2613 y Fh(caract)n(\022)-33
-b(ere)25 b(sp)n(\023)-33 b(ecial)24 b(p)r(our)f(quoter)i(l'expression)e
-(ra-)4013 2720 y(tionnelle)h Fb(c)1121 b Ff(\\)p Fb(c)3942
-2826 y Fh(alternativ)n(e)25 b(\(\\ou"\))960 b Ff(\\|)3942
-2932 y Fh(regroup)r(emen)n(t)1089 b Ff(\\\()35 b Fa(:)12
-b(:)f(:)35 b Ff(\\\))3942 3038 y Fh(le)23 b(m)n(^)-33
-b(eme)24 b(texte)i(que)e(dans)g(le)g Fb(n)5 b Fh(i)n(\022)-33
-b(eme)24 b(group)r(e)264 b Ff(\\)p Fb(n)3942 3145 y Fh(limite)23
-b(de)h(mot)1096 b Ff(\\b)3942 3251 y Fh(non)24 b(limite)f(de)h(mot)959
-b Ff(\\B)3942 3361 y Fe(en)n(tit)n(\023)-39 b(e)499 b(d)n(\023)-39
-b(ebut)258 b(\014n)3942 3417 y Fh(ligne)558 b Ff(^)427
-b($)3942 3483 y Fh(mot)582 b Ff(\\<)392 b(\\>)3942 3539
-y Fh(tamp)r(on)467 b Ff(\\`)392 b(\\')3942 3604 y Fe(classe)27
-b(de)g(caract)n(\022)-39 b(ere)41 b(corresp)r(ond)70
-b(corresp)r(ond)27 b(\022)-40 b(a)26 b(d'autres)3942
-3670 y Fh(ensem)n(ble)e(explicite)147 b Ff([)35 b Fa(:)12
-b(:)f(:)35 b Ff(])239 b([^)36 b Fa(:)12 b(:)f(:)35 b
-Ff(])3942 3736 y Fh(caract)n(\022)-33 b(ere)25 b(de)f(mot)186
-b Ff(\\w)392 b(\\W)3942 3791 y Fh(caract)n(\022)-33 b(ere)25
-b(a)n(v)n(ec)g(la)3984 3847 y(syn)n(taxe)g Fb(c)371 b
-Ff(\\s)p Fb(c)359 b Ff(\\S)p Fb(c)p eop end
-%%Page: 3 3
-TeXDict begin @landscape 3 2 bop -450 -364 a Fg(Jeux)38
-b(de)f(caract)n(\022)-55 b(eres)37 b(in)m(ternationaux)-450
--230 y Fh(indiquer)23 b(la)h(langue)g(principale)631
-b Ff(C-x)36 b(RET)g(l)-450 -123 y Fh(mon)n(trer)24 b(toutes)h(les)e(m)n
-(\023)-33 b(etho)r(des)25 b(de)f(saisie)29 b Ff(M-x)36
-b(list-input-methods)-450 -17 y Fh(activ)n(er)24 b(ou)g(d)n(\023)-33
-b(esactiv)n(er)25 b(la)f(m)n(\023)-33 b(etho)r(de)25
-b(de)f(saisie)229 b Ff(C-\\)-450 89 y Fh(c)n(hoisir)23
-b(le)g(syst)n(\022)-33 b(eme)25 b(de)f(co)r(dage)h(p)r(our)f(la)f(com-)
--379 196 y(mande)h(suiv)l(an)n(te)963 b Ff(C-x)36 b(RET)g(c)-450
-302 y Fh(mon)n(trer)24 b(tous)g(les)f(syst)n(\022)-33
-b(emes)25 b(de)f(co)r(dage)64 b Ff(M-x)36 b(list-coding-systems)-450
-408 y Fh(c)n(hoisir)23 b(le)g(syst)n(\022)-33 b(eme)25
-b(de)f(co)r(dage)h(pr)n(\023)-33 b(ef)n(\023)g(er)n(\023)g(e)85
-b Ff(M-x)36 b(prefer-coding-system)-450 599 y Fg(Info)-450
-733 y Fh(en)n(trer)24 b(dans)g(le)f(visualisateur)h(de)g(la)g(do)r
-(cumen)n(ta-)-379 839 y(tion)g(Info)1174 b Ff(C-h)36
-b(i)-450 946 y Fh(c)n(herc)n(her)24 b(une)h(fonction)f(ou)g(une)h(v)l
-(ariable)e(pr)n(\023)-33 b(ecise)-379 1052 y(dans)24
-b(Info)1154 b Ff(C-h)36 b(S)-450 1162 y Fh(Se)24 b(d)n(\023)-33
-b(eplacer)25 b(dans)f(un)f(n\033ud)i(:)-379 1281 y(une)f(page)h(plus)e
-(bas)891 b Ff(SPC)-379 1387 y Fh(une)24 b(page)h(plus)e(haut)853
-b Ff(DEL)-379 1494 y Fh(d)n(\023)-33 b(ebut)25 b(du)e(n\033ud)967
-b Ff(.)70 b Fh(\(p)r(oin)n(t\))-450 1604 y(P)n(asser)23
-b(de)h(n\033ud)g(en)h(n\033ud)f(:)-379 1710 y(n\033ud)g
-Fe(suiv)-5 b(an)n(t)991 b Ff(n)-379 1816 y Fh(n\033ud)24
-b Fe(pr)n(\023)-39 b(ec)n(\023)g(eden)n(t)898 b Ff(p)-379
-1922 y Fh(aller)22 b Fe(plus)i(haut)953 b Ff(u)-379 2029
-y Fh(c)n(hoisir)23 b(un)g(sujet)h(de)g(men)n(u)h(par)e(son)h(nom)277
-b Ff(m)-379 2135 y Fh(c)n(hoisir)23 b(le)g Fb(n)5 b Fh(i)n(\022)-33
-b(eme)24 b(sujet)g(de)g(men)n(u)g(par)g(son)-379 2241
-y(n)n(um)n(\023)-33 b(ero)23 b(\(1{9\))1029 b Fb(n)-379
-2347 y Fh(suivre)23 b(une)h(r)n(\023)-33 b(ef)n(\023)g(erence)24
-b(crois)n(\023)-33 b(ee)24 b(\(on)h(revien)n(t)f(a)n(v)n(ec)-379
-2454 y Ff(l)p Fh(\))1378 b Ff(f)-379 2560 y Fh(rev)n(enir)23
-b(au)h(dernier)f(n\033ud)h(visit)n(\023)-33 b(e)509 b
-Ff(l)-379 2666 y Fh(rev)n(enir)23 b(au)h(n\033ud)g(du)g(r)n(\023)-33
-b(ep)r(ertoire)509 b Ff(d)-379 2773 y Fh(aller)22 b(au)i(n\033ud)g(de)h
-(plus)e(haut)i(niv)n(eau)f(du)-379 2879 y(\014c)n(hier)f(Info)1110
-b Ff(t)-379 2985 y Fh(aller)22 b(sur)i(n'imp)r(orte)f(quel)h(n\033ud)g
-(par)f(son)h(nom)111 b Ff(g)-450 3095 y Fh(Autres)24
-b(:)-379 3201 y(lancer)f(le)h Fe(didacticiel)e Fh(Info)652
-b Ff(h)-379 3307 y Fh(c)n(herc)n(her)24 b(un)g(sujet)g(dans)g(l'index)
-518 b Ff(i)-379 3413 y Fh(rec)n(herc)n(her)24 b(les)f(n\033uds)h(a)n(v)
-n(ec)h(une)f(expression)-379 3519 y(rationnelle)1115
-b Ff(s)-379 3626 y Fe(quitter)22 b Fh(Info)1051 b Ff(q)1746
--364 y Fg(Registres)1746 -244 y Fh(sauv)n(er)24 b(la)f(r)n(\023)-33
-b(egion)24 b(dans)g(un)g(registre)506 b Ff(C-x)36 b(r)f(s)1746
--138 y Fh(ins)n(\023)-33 b(erer)23 b(le)g(con)n(ten)n(u)j(du)e
-(registre)f(dans)h(le)g(tamp)r(on)117 b Ff(C-x)36 b(r)f(i)1746
--11 y Fh(sauv)n(er)24 b(la)f(v)l(aleur)h(du)g(p)r(oin)n(t)g(dans)g(un)g
-(registre)222 b Ff(C-x)36 b(r)f(SPC)1746 95 y Fh(sauter)24
-b(au)g(p)r(oin)n(t)g(sauv)n(\023)-33 b(e)25 b(dans)f(le)f(registre)355
-b Ff(C-x)36 b(r)f(j)1746 244 y Fg(Macros)j(cla)m(vier)1746
-344 y Fe(lancer)23 b Fh(la)g(d)n(\023)-33 b(e\014nition)25
-b(d'une)f(macro)g(cla)n(vier)277 b Ff(C-x)36 b(\()1746
-451 y Fe(terminer)23 b Fh(la)g(d)n(\023)-33 b(e\014nition)25
-b(d'une)f(macro)f(cla)n(vier)183 b Ff(C-x)36 b(\))1746
-557 y Fe(ex)n(\023)-39 b(ecuter)24 b Fh(la)f(derni)n(\022)-33
-b(ere)24 b(macro)g(cla)n(vier)f(d)n(\023)-33 b(e\014nie)203
-b Ff(C-x)36 b(e)1746 663 y Fh(a)t(jouter)24 b(\022)-35
-b(a)24 b(la)f(derni)n(\022)-33 b(ere)24 b(macro)g(cla)n(vier)446
-b Ff(C-u)36 b(C-x)g(\()1746 770 y Fh(donner)24 b(un)g(nom)g(\022)-35
-b(a)24 b(la)f(derni)n(\022)-33 b(ere)24 b(macro)1817
-876 y(cla)n(vier)996 b Ff(M-x)36 b(name-last-kbd-macro)1746
-982 y Fh(ins)n(\023)-33 b(erer)23 b(une)h(d)n(\023)-33
-b(e\014nition)25 b(Lisp)e(dans)h(le)1817 1088 y(tamp)r(on)960
-b Ff(M-x)36 b(insert-kbd-macro)1746 1237 y Fg(Commandes)i(de)f(gestion)
-h(d'Emacs)g(Lisp)1744 1357 y Fh(\023)-33 b(ev)l(aluer)24
-b(la)g Fe(s-expression)f Fh(situ)n(\023)-33 b(ee)25 b(a)n(v)l(an)n(t)g
-(le)e(p)r(oin)n(t)115 b Ff(C-x)36 b(C-e)1744 1463 y Fh(\023)-33
-b(ev)l(aluer)24 b(la)g Fe(defun)g Fh(couran)n(te)707
-b Ff(C-M-x)1744 1570 y Fh(\023)-33 b(ev)l(aluer)24 b(la)g
-Fe(r)n(\023)-39 b(egion)726 b Ff(M-x)36 b(eval-region)1746
-1676 y Fh(lire)23 b(et)f(\023)-33 b(ev)l(aluer)24 b(le)g(mini-tamp)r
-(on)593 b Ff(M-:)1746 1782 y Fh(c)n(harger)24 b(\022)-35
-b(a)24 b(partir)f(du)h(r)n(\023)-33 b(ep)r(ertoire)23
-b(syst)n(\022)-33 b(eme)1817 1888 y(standard)926 b Ff(M-x)36
-b(load-library)1746 2037 y Fg(P)m(ersonnalisation)g(simple)1746
-2157 y Fh(p)r(ersonnaliser)23 b(les)h(v)l(ariables)f(et)h(les)g(fon)n
-(tes)81 b Ff(M-x)36 b(customize)1746 2263 y Fh(Cr)n(\023)-33
-b(eation)23 b(de)g(liaisons)f(de)h(touc)n(hes)h(globales)f(en)g(Emacs)g
-(Lisp)f(\(exem-)1746 2336 y(ples\):)1746 2425 y Ff(\(global-set-key)40
-b("\\C-cg")d('goto-line\))1746 2493 y(\(global-set-key)j("\\M-#")d
-('query-replace-regexp\))1755 2627 y Fg(\023)1746 2651
-y(Ecriture)g(de)h(commandes)1746 2731 y Ff(\(defun)f
-Fb(nom-c)l(ommande)43 b Ff(\()p Fb(ar)l(gs)5 b Ff(\))1817
-2796 y(")p Fb(do)l(cumentation)g Ff(")38 b(\(interactive)g(")p
-Fb(template)5 b Ff("\))1817 2862 y Fb(b)l(o)l(dy)h Ff(\))1746
-2948 y Fh(Exemple)24 b(:)1746 3034 y Ff(\(defun)37 b
-(cette-ligne-en-haut-de-)q(la-f)q(ene)q(tre)42 b(\(line\))1746
-3090 y("Repositionne)d(la)d(ligne)h(du)e(point)i(en)f(haut)g(de)g(la)g
-(fenetre.)1746 3145 y(Avec)g(ARG,)h(place)g(le)e(point)i(sur)f(la)g
-(ligne)h(ARG.")1817 3213 y(\(interactive)h("P"\))1817
-3269 y(\(recenter)f(\(if)g(\(null)f(line\))2311 3324
-y(0)2240 3380 y(\(prefix-numeric-value)41 b(line\)\)\)\))1746
-3468 y Fh(La)21 b(sp)n(\023)-33 b(eci\014cation)23 b
-Ff(interactive)h Fh(indique)d(commen)n(t)h(lire)e(in)n(teractiv)n(e-)
-1746 3534 y(men)n(t)28 b(les)f(param)n(\022)-33 b(etres.)42
-b(F)-6 b(aites)28 b Ff(C-h)36 b(f)f(interactive)30 b
-Fh(p)r(our)e(plus)e(de)1746 3599 y(pr)n(\023)-33 b(ecisions.)2039
-3682 y Fd(Cop)n(yrigh)n(t)2342 3680 y(c)2325 3682 y Fc(\015)21
+b(ere)38 b(com-)4098 4173 y(mande)22 b(a)n(y)n(an)n(t)g(utilis)n(\023)
+-33 b(e)20 b(le)h(mini-tamp)r(on.)30 b(F)-6 b(aites)22
+b Ff(F10)f Fh(p)r(our)g(utiliser)f(la)4098 4253 y(barre)j(de)h(men)n(u)
+h(sur)e(un)h(terminal)f(en)h(utilisan)n(t)g(le)f(mini-tamp)r(on.)p
+eop end
+%%Page: 2 2
+TeXDict begin @landscape 2 1 bop -384 -421 a Fi(Carte)46
+b(de)g(r)m(\023)-66 b(ef)m(\023)g(erence)46 b(de)g(GNU)f(Emacs)-294
+-227 y Fg(T)-10 b(amp)s(ons)-294 -76 y Fh(Choisir)23
+b(un)g(autre)i(tamp)r(on)674 b Ff(C-x)36 b(b)-294 4 y
+Fh(Lister)23 b(tous)i(les)e(tamp)r(ons)719 b Ff(C-x)36
+b(C-b)-294 84 y Fh(Supprimer)23 b(un)h(tamp)r(on)757
+b Ff(C-x)36 b(k)-294 257 y Fg(T)-10 b(ransp)s(oser)-294
+409 y Fh(T)k(ransp)r(oser)24 b(des)g Fe(caract)n(\022)-39
+b(eres)598 b Ff(C-t)-294 488 y Fh(T)-6 b(ransp)r(oser)24
+b(des)g Fe(mots)783 b Ff(M-t)-294 568 y Fh(T)-6 b(ransp)r(oser)24
+b(des)g Fe(lignes)755 b Ff(C-x)36 b(C-t)-294 648 y Fh(T)-6
+b(ransp)r(oser)24 b(des)g Fe(s-expressions)496 b Ff(C-M-t)-294
+822 y Fg(V)n(\023)-55 b(eri\014er)37 b(l'orthographe)-294
+973 y Fh(V)n(\023)-33 b(eri\014er)23 b(l'orthographe)h(du)g(mot)g
+(couran)n(t)273 b Ff(M-$)-294 1053 y Fh(V)n(\023)-33
+b(eri\014er)23 b(l'orthographe)h(d'une)g(r)n(\023)-33
+b(egion)231 b Ff(M-x)36 b(ispell-region)-294 1133 y Fh(V)n(\023)-33
+b(eri\014er)23 b(l'orthographe)h(de)g(tout)h(le)f(tamp)r(on)53
+b Ff(M-x)36 b(ispell-buffer)-294 1308 y Fg(T)-10 b(ags)-294
+1460 y Fh(T)k(rouv)n(er)24 b(un)g(tag)g(\(une)h(d)n(\023)-33
+b(e\014nition\))475 b Ff(M-.)-294 1539 y Fh(P)n(asser)23
+b(\022)-35 b(a)24 b(l'o)r(ccurrence)g(suiv)l(an)n(te)h(du)f(tag)298
+b Ff(C-u)36 b(M-.)-294 1619 y Fh(Sp)n(\023)-33 b(eci\014er)24
+b(un)g(autre)h(\014c)n(hier)e(de)h(tags)217 b Ff(M-x)36
+b(visit-tags-table)-294 1727 y Fh(Rec)n(herc)n(her)25
+b(dans)f(tous)g(les)f(\014c)n(hiers)h(des)g(tags)32 b
+Ff(M-x)k(tags-search)-294 1836 y Fh(Remplacer)24 b(dans)g(tous)g(les)g
+(\014c)n(hiers)159 b Ff(M-x)36 b(tags-query-replace)-294
+1915 y Fh(Con)n(tin)n(uer)24 b(la)g(rec)n(herc)n(he)h(ou)f(le)f
+(remplacemen)n(t)122 b Ff(M-,)-294 2090 y Fg(Shell)-294
+2241 y Fh(Ex)n(\023)-33 b(ecuter)25 b(une)f(commande)h(shell)519
+b Ff(M-!)-294 2321 y Fh(Lancer)24 b(une)h(commande)f(shell)g(sur)f(la)g
+(r)n(\023)-33 b(egion)176 b Ff(M-|)-294 2400 y Fh(Filtrer)23
+b(la)g(r)n(\023)-33 b(egion)24 b(a)n(v)n(ec)h(une)f(commande)h(shell)
+148 b Ff(C-u)36 b(M-|)-294 2480 y Fh(Lancer)24 b(un)g(shell)f(dans)h
+(la)g(fen)n(^)-33 b(etre)24 b Ff(*shell*)223 b(M-x)36
+b(shell)-294 2646 y Fg(Rectangles)-294 2797 y Fh(Copier)23
+b(le)h(rectangle)h(dans)f(un)g(registre)341 b Ff(C-x)36
+b(r)g(r)-294 2876 y Fh(D)n(\023)-33 b(etruire)23 b(le)h(rectangle)807
+b Ff(C-x)36 b(r)g(k)-294 2956 y Fh(R)n(\023)-33 b(ecup)n(\023)g(erer)24
+b(le)g(rectangle)754 b Ff(C-x)36 b(r)g(y)-294 3036 y
+Fh(D)n(\023)-33 b(ecaler)24 b(le)f(rectangle)i(\022)-35
+b(a)24 b(droite)571 b Ff(C-x)36 b(r)g(o)-294 3116 y Fh(Vider)23
+b(le)h(rectangle)894 b Ff(C-x)36 b(r)g(c)-294 3195 y
+Fh(Pr)n(\023)-33 b(e\014xer)24 b(c)n(haque)h(ligne)f(du)f(rectangle)392
+b Ff(C-x)36 b(r)g(t)-294 3370 y Fg(Abr)n(\023)-55 b(eviations)-294
+3521 y Fh(Ajouter)24 b(une)g(abr)n(\023)-33 b(eviation)25
+b(globale)462 b Ff(C-x)36 b(a)g(g)-294 3601 y Fh(Ajouter)24
+b(une)g(abr)n(\023)-33 b(eviation)25 b(lo)r(cale)f(au)g(mo)r(de)215
+b Ff(C-x)36 b(a)g(l)-294 3680 y Fh(Ajouter)24 b(une)g(expansion)h
+(globale)505 b Ff(C-x)36 b(a)g(i)f(g)-294 3760 y Fh(Ajouter)24
+b(une)g(expansion)h(lo)r(cale)f(au)g(mo)r(de)258 b Ff(C-x)36
+b(a)g(i)f(l)-294 3840 y Fh(F)-6 b(aire)17 b(une)i(expansion)g
+(explicite)f(de)g(l'abr)n(\023)-33 b(eviation)71 b Ff(C-x)36
+b(a)g(e)-294 3948 y Fh(F)-6 b(aire)23 b(une)i(expansion)f(du)g(mot)g
+(pr)n(\023)-33 b(ec)n(\023)g(eden)n(t)261 b Ff(M-/)1902
+-421 y Fg(Expressions)39 b(rationnelles)1902 -270 y Fh(Un)24
+b(caract)n(\022)-33 b(ere)25 b(quelconque,)g(sauf)e(\014n)h(de)g(ligne)
+150 b Ff(.)71 b Fh(\(p)r(oin)n(t\))1902 -190 y(Z)n(\023)-33
+b(ero)24 b(r)n(\023)-33 b(ep)n(\023)g(etition)24 b(ou)g(plus)734
+b Ff(*)1902 -110 y Fh(Une)24 b(r)n(\023)-33 b(ep)n(\023)g(etition)24
+b(ou)h(plus)747 b Ff(+)1902 -31 y Fh(Z)n(\023)-33 b(ero)24
+b(ou)g(une)g(r)n(\023)-33 b(ep)n(\023)g(etition)751 b
+Ff(?)1908 32 y Fh(\023)1902 49 y(Ec)n(happ)r(er)25 b(le)e(caract)n
+(\022)-33 b(ere)25 b(sp)n(\023)-33 b(ecial)24 b Fb(c)488
+b Ff(\\)p Fb(c)1902 129 y Fh(Alternativ)n(e)24 b(\(\\ou")i(non)e
+(exclusif)5 b(\))476 b Ff(\\|)1902 208 y Fh(Regroup)r(emen)n(t)994
+b Ff(\\\()36 b Fa(:)11 b(:)h(:)34 b Ff(\\\))1902 288
+y Fh(Reprendre)24 b(le)g(texte)h(du)f Fb(n)5 b Fh(-i)n(\022)-33
+b(eme)24 b(group)r(emen)n(t)146 b Ff(\\)p Fb(n)1902 368
+y Fh(Limite)23 b(de)i(mot)1000 b Ff(\\b)1902 448 y Fh(Non)24
+b(limite)f(de)h(mot)874 b Ff(\\B)1902 556 y Fe(Ob)5 b(jet)707
+b(D)n(\023)-39 b(ebut)264 b(Fin)1902 636 y Fh(Ligne)743
+b Ff(^)450 b($)1902 715 y Fh(Mot)785 b Ff(\\<)415 b(\\>)1902
+795 y Fh(T)-6 b(amp)r(on)658 b Ff(\\`)415 b(\\')1902
+875 y Fe(Classe)26 b(de)i(caract)n(\022)-39 b(ere)227
+b(Corresp)r(ond)70 b(Compl)n(\023)-39 b(emen)n(t)1902
+954 y Fh(Ensem)n(ble)24 b(explicite)339 b Ff([)36 b Fa(:)11
+b(:)h(:)34 b Ff(])262 b([^)36 b Fa(:)12 b(:)f(:)35 b
+Ff(])1902 1034 y Fh(Caract)n(\022)-33 b(ere)25 b(de)f(mot)375
+b Ff(\\w)415 b(\\W)1902 1114 y Fh(Caract)n(\022)-33 b(ere)25
+b(a)n(v)n(ec)f(la)g(syn)n(taxe)h Fb(c)67 b Ff(\\s)p Fb(c)382
+b Ff(\\S)p Fb(c)1902 1288 y Fg(Jeux)38 b(de)f(caract)n(\022)-55
+b(eres)37 b(in)m(ternationaux)1902 1439 y Fh(Pr)n(\023)-33
+b(eciser)23 b(la)g(langue)i(principale)568 b Ff(C-x)36
+b(RET)g(l)1902 1519 y Fh(Lister)23 b(les)h(m)n(\023)-33
+b(etho)r(des)25 b(de)f(saisie)268 b Ff(M-x)36 b(list-input-methods)1902
+1599 y Fh(Activ)n(er/d)n(\023)-33 b(esactiv)n(er)25 b(la)f(m)n(\023)-33
+b(etho)r(de)25 b(de)f(saisie)227 b Ff(C-\\)1902 1679
+y Fh(Choisir)17 b(le)i(co)r(dage)h(p)r(our)e(la)g(commande)i(suiv)l(an)
+n(te)72 b Ff(C-x)36 b(RET)g(c)1902 1758 y Fh(Lister)23
+b(les)h(co)r(dages)568 b Ff(M-x)37 b(list-coding-systems)1902
+1838 y Fh(Choisir)23 b(le)g(co)r(dage)i(pr)n(\023)-33
+b(ef)n(\023)g(er)n(\023)g(e)312 b Ff(M-x)36 b(prefer-coding-system)1902
+2014 y Fg(Info)1902 2166 y Fh(Lire)23 b(une)h(do)r(cumen)n(tation)j
+(Info)557 b Ff(C-h)36 b(i)1902 2245 y Fh(Rec)n(herc)n(her)25
+b(une)f(fonction/v)l(ariable)h(dans)f(Info)110 b Ff(C-h)36
+b(S)1902 2354 y Fh(Se)24 b(d)n(\023)-33 b(eplacer)25
+b(dans)f(un)f(n\033ud)i(:)1973 2462 y(P)n(age)f(suiv)l(an)n(te)948
+b Ff(SPC)1973 2542 y Fh(P)n(age)24 b(pr)n(\023)-33 b(ec)n(\023)g(eden)n
+(te)873 b Ff(DEL)1973 2621 y Fh(D)n(\023)-33 b(ebut)24
+b(du)g(n\033ud)881 b Ff(.)71 b Fh(\(p)r(oin)n(t\))1902
+2730 y(Na)n(vigation)25 b(en)n(tre)f(n\033uds)g(:)1973
+2838 y(N\033ud)f Fe(suiv)-5 b(an)n(t)907 b Ff(n)1973
+2918 y Fh(N\033ud)23 b Fe(pr)n(\023)-39 b(ec)n(\023)g(eden)n(t)814
+b Ff(p)1973 2997 y Fe(Remon)n(ter)22 b Fh(d'un)i(niv)n(eau)634
+b Ff(u)1973 3077 y Fh(Choisir)22 b(un)i(sujet)g(du)g(men)n(u)g(par)g
+(son)f(nom)177 b Ff(m)1973 3157 y Fh(Choisir)22 b(le)i
+Fb(n)5 b Fh(-i)n(\022)-33 b(eme)23 b(sujet)h(\(1{9\))488
+b Fb(n)1973 3236 y Fh(Suivre)18 b(une)h(r)n(\023)-33
+b(ef)n(\023)g(erence)18 b(crois)n(\023)-33 b(ee)19 b(\(retour)f(a)n(v)n
+(ec)i Ff(l)p Fh(\))71 b Ff(f)1973 3316 y Fh(Rev)n(enir)23
+b(au)h(dernier)g(n\033ud)g(visit)n(\023)-33 b(e)413 b
+Ff(l)1973 3396 y Fh(Aller)22 b(au)i(sommaire)f(Info)658
+b Ff(d)1973 3475 y Fh(Aller)22 b(au)i(n\033ud)g(le)g(plus)f(haut)i(du)f
+(man)n(uel)189 b Ff(t)1973 3555 y Fh(Aller)22 b(sur)h(un)h(n\033ud)g
+(par)g(son)f(nom)395 b Ff(g)1902 3663 y Fh(Autres)24
+b(:)1973 3772 y(Aller)e(au)i Fe(didacticiel)e Fh(Info)591
+b Ff(h)1973 3851 y Fh(Rec)n(herc)n(her)24 b(un)g(sujet)g(dans)g
+(l'index)364 b Ff(i)1973 3931 y Fh(Rec)n(herc)n(her)24
+b(un)g(n\033ud)g(par)g(expr.)31 b(rationnelle)73 b Ff(s)1973
+4011 y Fe(Quitter)22 b Fh(Info)962 b Ff(q)4098 -421 y
+Fg(Registres)4098 -271 y Fh(Sauv)n(er)24 b(la)g(r)n(\023)-33
+b(egion)24 b(dans)g(un)g(registre)423 b Ff(C-x)36 b(r)g(s)4098
+-191 y Fh(Ins)n(\023)-33 b(erer)24 b(le)f(con)n(ten)n(u)j(d'un)e
+(registre)480 b Ff(C-x)36 b(r)g(i)4098 -83 y Fh(Sauv)n(er)24
+b(la)g(v)l(aleur)g(du)g(p)r(oin)n(t)g(dans)g(un)g(registre)139
+b Ff(C-x)36 b(r)g(SPC)4098 -3 y Fh(Aller)22 b(au)i(p)r(oin)n(t)h(sauv)n
+(\023)-33 b(e)24 b(dans)g(un)g(registre)294 b Ff(C-x)36
+b(r)g(j)4098 172 y Fg(Macros)i(cla)m(vier)4098 322 y
+Fe(Lancer)23 b Fh(la)h(d)n(\023)-33 b(e\014nition)24
+b(d'une)g(macro)g(cla)n(vier)180 b Ff(C-x)36 b(\()4098
+402 y Fe(T)-7 b(erminer)23 b Fh(la)g(d)n(\023)-33 b(e\014nition)25
+b(d'une)f(macro)g(cla)n(vier)93 b Ff(C-x)36 b(\))4098
+481 y Fe(Ex)n(\023)-39 b(ecuter)24 b Fh(la)f(derni)n(\022)-33
+b(ere)24 b(macro)g(cla)n(vier)f(d)n(\023)-33 b(e\014nie)116
+b Ff(C-x)36 b(e)4098 561 y Fh(F)-6 b(aire)23 b(un)h(a)t(jout)h(\022)-35
+b(a)23 b(la)h(derni)n(\022)-33 b(ere)23 b(macro)h(cla)n(vier)155
+b Ff(C-u)36 b(C-x)g(\()4098 641 y Fh(Nommer)23 b(la)h(derni)n(\022)-33
+b(ere)23 b(macro)h(cla)n(vier)59 b Ff(M-x)37 b(name-last-kbd-macro)4098
+720 y Fh(En)24 b(ins)n(\023)-33 b(erer)23 b(une)h(d)n(\023)-33
+b(e\014nition)25 b(Lisp)297 b Ff(M-x)36 b(insert-kbd-macro)4098
+894 y Fg(Commandes)i(de)f(gestion)h(d'Emacs)g(Lisp)4104
+1036 y Fh(\023)4098 1053 y(Ev)l(aluer)24 b(la)f Fe(s-expression)h
+Fh(a)n(v)l(an)n(t)h(le)f(p)r(oin)n(t)227 b Ff(C-x)36
+b(C-e)4104 1116 y Fh(\023)4098 1133 y(Ev)l(aluer)24 b(la)f
+Fe(defun)h Fh(couran)n(te)620 b Ff(C-M-x)4104 1196 y
+Fh(\023)4098 1212 y(Ev)l(aluer)24 b(la)f Fe(r)n(\023)-39
+b(egion)742 b Ff(M-x)36 b(eval-region)4098 1292 y Fh(Lire)23
+b(et)f(\023)-33 b(ev)l(aluer)25 b(dans)f(le)f(mini-tamp)r(on)333
+b Ff(M-:)4098 1372 y Fh(Charger)24 b(depuis)g(un)g(r)n(\023)-33
+b(ep)r(ertoire)23 b(standard)113 b Ff(M-x)36 b(load-library)4098
+1547 y Fg(P)m(ersonnalisation)g(simple)4098 1697 y Fh(P)n(ersonnaliser)
+23 b(les)g(v)l(ariables)h(et)g(les)g(fon)n(tes)108 b
+Ff(M-x)36 b(customize)4098 1805 y Fh(Exemples)24 b(de)g(d)n(\023)-33
+b(e\014nition)25 b(globale)f(de)g(touc)n(hes)h(en)f(Emacs)g(Lisp)f(:)
+4098 1913 y Ff(\(global-set-key)40 b("\\C-cg")d('goto-line\))4098
+1993 y(\(global-set-key)j("\\M-#")d('query-replace-regexp\))4107
+2168 y Fg(\023)4098 2192 y(Ecriture)g(de)h(commandes)4098
+2342 y Ff(\(defun)f Fb(nom-c)l(ommande)43 b Ff(\()p Fb(ar)l(gs)5
+b Ff(\))4169 2422 y(")p Fb(do)l(cumentation)g Ff(")4169
+2502 y(\(interactive)38 b(")p Fb(template)5 b Ff("\))4169
+2581 y Fb(b)l(o)l(dy)h Ff(\))4098 2689 y Fh(Exemple)24
+b(:)4098 2797 y Ff(\(defun)37 b(cette-ligne-en-haut-de-)q(la-f)q(ene)q
+(tre)42 b(\(line\))4169 2877 y("Positionne)c(la)e(ligne)h(courante)g
+(en)f(haut)g(de)g(la)g(fen^)-35 b(etre.)4098 2957 y(Avec)36
+b(ARG,)h(place)g(le)e(point)i(sur)f(la)g(ligne)h(ARG.")4169
+3037 y(\(interactive)h("P"\))4169 3116 y(\(recenter)f(\(if)g(\(null)f
+(line\))4663 3196 y(0)4592 3276 y(\(prefix-numeric-value)41
+b(line\)\)\)\))4098 3384 y Fh(La)21 b(sp)n(\023)-33 b(eci\014cation)23
+b Ff(interactive)h Fh(indique)d(commen)n(t)h(lire)e(in)n(teractiv)n(e-)
+4098 3463 y(men)n(t)28 b(les)f(param)n(\022)-33 b(etres.)42
+b(F)-6 b(aites)27 b Ff(C-h)37 b(f)e(interactive)30 b
+Fh(p)r(our)e(plus)e(de)4098 3543 y(pr)n(\023)-33 b(ecisions.)4391
+3635 y Fd(Cop)n(yrigh)n(t)4694 3633 y(c)4677 3635 y Fc(\015)21
 b Fd(2007)i(F)-5 b(ree)21 b(Soft)n(w)n(are)i(F)-5 b(oundation,)20
-b(Inc.)2179 3727 y(v2.3)h(p)r(our)f(GNU)g(Emacs)h(v)n(ersion)h(22,)f
-(2006)2309 3771 y(conception)g(de)f(Stephen)g(Gildea)2220
-3835 y(traduction)h(fran\030)-27 b(caise)21 b(d')2831
-3822 y(\023)2826 3835 y(Eric)f(Jacob)r(oni)1746 3900
-y(V)-5 b(ous)22 b(p)r(ouv)n(ez)g(faire)g(et)g(distribuer)f(des)h
-(copies)g(de)f(cette)i(carte,)f(p)r(ourvu)f(que)h(la)1746
-3944 y(note)16 b(de)g(cop)n(yrigh)n(t)g(et)h(cette)f(note)g(de)g(p)r
-(ermission)f(soien)n(t)h(conserv)n(\023)-29 b(ees)19
-b(sur)c(toutes)1746 3989 y(les)21 b(copies.)1746 4054
-y(P)n(our)e(les)g(copies)g(du)f(man)n(uel)g(GNU)g(Emacs,)g(\023)-29
-b(ecriv)n(ez)20 b(\022)-30 b(a)19 b(la)g(F)-5 b(ree)19
-b(Soft)n(w)n(are)i(F)-5 b(oun-)1746 4098 y(dation,)29
+b(Inc.)4531 3699 y(v2.3)h(p)r(our)f(GNU)g(Emacs)h(v)n(ersion)h(22,)f
+(2007)4661 3763 y(conception)g(de)f(Stephen)g(Gildea)4510
+3827 y(traduction)g(fran\030)-27 b(caise)22 b(de)e(Mic)n(ha)n(\177)-29
+b(el)22 b(Cadilhac)4098 3919 y(V)-5 b(ous)22 b(p)r(ouv)n(ez)g(faire)g
+(et)g(distribuer)f(des)h(copies)g(de)f(cette)i(carte,)f(p)r(ourvu)f
+(que)h(la)4098 3983 y(note)16 b(de)g(cop)n(yrigh)n(t)g(et)h(cette)f
+(note)g(de)g(p)r(ermission)f(soien)n(t)h(conserv)n(\023)-29
+b(ees)19 b(sur)c(toutes)4098 4046 y(les)21 b(copies.)4098
+4138 y(P)n(our)d(des)f(copies)h(du)f(man)n(uel)g(GNU)f(Emacs,)h(\023)
+-29 b(ecriv)n(ez)19 b(\022)-30 b(a)17 b(la)h(F)-5 b(ree)18
+b(Soft)n(w)n(are)h(F)-5 b(oun-)4098 4202 y(dation,)29
 b(Inc.,)g(51)g(F)-5 b(ranklin)28 b(Street,)h(Fifth)f(Flo)r(or,)h
-(Boston,)i(MA)d(02110-1301)1746 4143 y(USA.)p eop end
+(Boston,)i(MA)d(02110-1301)4098 4266 y(USA.)p eop end
 %%Trailer
 
 userdict /end-hook known{end-hook}if
index dcbed8347dc55e1e866f2003d8fcc6b822736c30..1e399334b909f095315bd32a65324696d5c0e8d5 100644 (file)
@@ -66,7 +66,7 @@
 
 \def\versionnumber{2.3}
 \def\versionemacs{22}
-\def\versionyear{2006}          % latest update
+\def\versionyear{2007}          % latest update
 \def\year{2007}                 % latest copyright year
 
 \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
 \centerline{v\versionnumber{} pour GNU Emacs version \versionemacs,
   \versionyear}
 \centerline{conception de Stephen Gildea}
-\centerline{traduction fran\c{c}aise d'\'Eric Jacoboni}
+\centerline{traduction fran\c{c}aise de Micha\"el Cadilhac}
+% previously: Eric Jacoboni
 
 Vous pouvez faire et distribuer des copies de cette carte, pourvu que
 la note de copyright et cette note de permission soient conserv\'ees sur
 toutes les copies.
 
-Pour les copies du manuel GNU Emacs, \'ecrivez \`a la Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+Pour des copies du manuel GNU Emacs, \'ecrivez \`a la Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
 
 \endgroup}
 
@@ -121,13 +123,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 \else                           %2 or 3 columns uses prereduced size
   \hsize 3.2in
   \vsize 7.95in
-  \if 1\the\letterpaper
-     \vsize 7.95in
-  \else
-     \vsize 7.65in
-  \fi
-  \hoffset -.75in
-  \voffset -.745in
+%  \hoffset -.75in
+  \hoffset -.49in
+%  \voffset -.745in
+  \voffset -.84in
   \font\titlefont=cmbx10 \scaledmag2
   \font\headingfont=cmbx10 \scaledmag1
   \font\smallfont=cmr6
@@ -146,11 +145,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
   \def\it{\eightit}
   \def\tt{\eighttt}
   \normalbaselineskip=.8\normalbaselineskip
-  \if 1\the\letterpaper
-     \normalbaselineskip=.8\normalbaselineskip
-  \else
-     \normalbaselineskip=.7\normalbaselineskip
-  \fi
   \normallineskip=.8\normallineskip
   \normallineskiplimit=.8\normallineskiplimit
   \normalbaselines\rm           %make definitions take effect
@@ -200,7 +194,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 \chardef\{=`\{
 \chardef\}=`\}
 
-\hyphenation{mini-buf-fer}
+\hyphenation{mini-tam-pon}
 
 \parindent 0pt
 \parskip 1ex plus .5ex minus .5ex
@@ -216,8 +210,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 
 % section - new major section.  Argument is section name.
 \outer\def\section#1{\par\filbreak
-  \vskip 2ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
-  \vskip 1ex plus 1ex minus 1.5ex}
+  \vskip 2ex plus 1.5ex minus 2.5ex {\headingfont #1}\mark{#1}%
+  \vskip 1.5ex plus 1ex minus 1.5ex}
 
 \newdimen\keyindent
 
@@ -250,10 +244,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 % \key{description of key}{key-name}
 % prints the description left-justified, and the key-name in a \kbd
 % form near the right margin.
-\def\key#1#2{\leavevmode\hbox to \hsize{\vbox
-  {\hsize=.75\hsize\rightskip=1em \tolerance=20000
-   \raggedright
-   \hskip\keyindent\hangindent=1em\strut#1\strut}\kbd{\quad#2}\hss}}
+\def\key#1#2{\leavevmode\hbox to \hsize{\vtop
+  {\hsize=.75\hsize\rightskip=1em
+  \hskip\keyindent\relax#1}\kbd{#2}\hfil}}
 
 \newbox\metaxbox
 \setbox\metaxbox\hbox{\kbd{M-x }}
@@ -265,12 +258,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 % Tries to justify the beginning of the command name at the same place
 % as \key starts the key name.  (The "M-x " sticks out to the left.)
 % Note: was \hsize=.74, but changed to avoid overflow in some places.
-\def\metax#1#2{\leavevmode\hbox to \hsize{\vbox
-  {\hsize=.66\hsize\rightskip=1em
-   \raggedright \tolerance=20000
-   \hskip\keyindent\hangindent=1em\strut#1\strut\par}%
-   %\hskip-\metaxwidth minus 1fil
-   \kbd{#2}\hss}}
+\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
+  {\hskip\keyindent\relax#1\hfil}%
+  \hskip -\metaxwidth minus 1fil
+  \kbd{#2}\hfil}}
 
 % threecol - like "key" but with two key names.
 % for example, one for doing the action backward, and one for forward.
@@ -284,395 +275,378 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 
 \centerline{(pour la version \versionemacs)}
 
-\section{Lancement d'Emacs}
-
-Pour lancer GNU Emacs \versionemacs, il suffit de taper son nom : \kbd{emacs}
+\section{Lancer Emacs}
 
-Pour charger un fichier \`a \'editer, voir Fichiers, ci-dessous.
+Pour lancer GNU Emacs \versionemacs, tapez juste son nom : \kbd{emacs}.
 
 \section{Quitter Emacs}
 
-\key{suspend Emacs (ou l'iconifie sous X)}{C-z}
-\key{quitter d\'efinitivement Emacs}{C-x C-c}
+\key{Suspendre Emacs (ou l'iconifier sous X)}{C-z}
+\key{Quitter d\'efinitivement Emacs}{C-x C-c}
 
 \section{Fichiers}
 
-\key{{\bf lire} un fichier dans Emacs}{C-x C-f}
-\key{{\bf sauvegarder} un fichier sur disque}{C-x C-s}
-\key{sauvegarder {\bf tous} les fichiers}{C-x s}
-\key{{\bf ins\'erer} le contenu d'un autre fichier dans ce tampon}{C-x i}
-\key{remplacer ce fichier par le fichier voulu}{C-x C-v}
-\key{\'ecrire le tampon dans un fichier donn\'e}{C-x C-w}
-\key{bascule du mode lecture-seule du tampon}{C-x C-q}
+\key{{\bf Lire} un fichier}{C-x C-f}
+\key{{\bf Sauvegarder} un fichier}{C-x C-s}
+\key{Sauvegarder {\bf tous} les fichiers}{C-x s}
+\key{{\bf Ins\'erer} un fichier sous le point (curseur)}{C-x i}
+\key{Remplacer le fichier par un autre fichier}{C-x C-v}
+\key{Sauvegarder sous un autre nom de fichier}{C-x C-w}
+\key{Basculer en mode lecture seule}{C-x C-q}
 
 \section{Obtenir de l'aide}
 
-Le syst\`eme d'aide est simple. Faites \kbd{C-h} (ou \kbd{F1}) et suivez
-les instructions. Si vous d\'ebutez, faites \kbd{C-h t} pour suivre un
+Le syst\`eme d'aide est simple. Faites \kbd{C-h} (ou \kbd{F1}) et
+suivez les instructions. Si vous d\'ebutez, faites \kbd{C-h t} pour un
 {\bf didacticiel}.
 
-\key{supprimer la fen\^etre d'aide}{C-x 1}
-\key{faire d\'efiler la fen\^etre d'aide}{C-M-v}
+\key{Supprimer la fen\^etre d'aide}{C-x 1}
+\key{Faire d\'efiler la fen\^etre d'aide}{C-M-v}
 
-\key{apropos : montrer les commandes contenant une certaine cha\^\i{}ne}{C-h a}
-\key{d\'ecrire la fonction lanc\'ee par une touche}{C-h k}
-\key{d\'ecrire une fonction}{C-h f}
-\key{obtenir des informations sp\'ecifiques au mode}{C-h m}
+\key{Rechercher des commandes selon une cha\^\i{}ne}{C-h a}
+\key{D\'ecrire la fonction associ\'ee \`a une touche}{C-h k}
+\key{D\'ecrire une fonction}{C-h f}
+\key{Obtenir des informations relatives au mode}{C-h m}
 
-\section{R\'ecup\'eration des erreurs}
+\section{R\'ecup\'eration sur erreurs}
 
-\key{{\bf avorter} une commande partiellement tap\'ee ou ex\'ecut\'ee}{C-g}
-\metax{{\bf r\'ecup\'erer} les fichier perdus par un crash du syst\`eme}{M-x recover-session}
-\metax{{\bf annuler} une modification non souhait\'ee}{C-x u, C-_ {\rm ou} C-/}
-\metax{restaurer un tampon avec son contenu initial}{M-x revert-buffer}
-\key{r\'eafficher un \'ecran perturb\'e}{C-l}
-
-\shortcopyrightnotice
+\key{{\bf Abandonner} une commande}{C-g}
+\metax{{\bf R\'ecup\'erer} les fichiers apr\`es un crash}{M-x recover-session}
+\metax{{\bf Annuler} une modification}{C-x u, C-_ {\rm ou} C-/}
+\metax{Annuler toutes les modifications}{M-x revert-buffer}
+\key{R\'eafficher un \'ecran perturb\'e}{C-l}
 
 \section{Recherche incr\'ementale}
 
-\key{rechercher vers l'avant}{C-s}
-\key{rechercher vers l'arri\`ere}{C-r}
-\key{rechercher vers l'avant par expression rationnelle}{C-M-s}
-\key{rechercher vers l'arri\`ere par expression rationnelle}{C-M-r}
+\key{Rechercher en avant}{C-s}
+\key{Rechercher en arri\`ere}{C-r}
+\key{Rechercher en avant (expression rationnelle)}{C-M-s}
+\key{Rechercher en arri\`ere (expression rationnelle)}{C-M-r}
 
-\key{s\'electionner la cha\^\i{}ne de recherche pr\'ec\'edente}{M-p}
-\key{s\'electionner la cha\^\i{}ne de recherche suivante}{M-n}
-\key{sortir de la recherche incr\'ementale}{RET}
-\key{annuler l'effet du dernier caract\`ere}{DEL}
-\key{annuler la recherche en cours}{C-g}
+\key{Utiliser la cha\^\i{}ne de recherche pr\'ec\'edente}{M-p}
+\key{Utiliser la cha\^\i{}ne de recherche suivante}{M-n}
+\key{Quitter la recherche incr\'ementale}{RET}
+\key{Annuler l'effet du dernier caract\`ere}{DEL}
+\key{Annuler la recherche en cours}{C-g}
 
 Refaites \kbd{C-s} ou \kbd{C-r} pour r\'ep\'eter la recherche dans une
-direction quelconque.
-Si Emacs est encore en train de chercher, \kbd{C-g} n'annule que ce
-qui n'a pas \'et\'e fait.
+des directions.
+En cours de recherche, \kbd{C-g} efface les derniers caract\`eres et
+ne conserve que le pr\'efixe d\'ej\`a trouv\'e.
+
+\shortcopyrightnotice
 
 \section{D\'eplacements}
 
 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
-\threecol{{\bf entit\'e sur laquelle se d\'eplacer}}{{\bf en arri\`ere}}{{\bf en avant}}
-\threecol{caract\`ere}{C-b}{C-f}
-\threecol{mot}{M-b}{M-f}
-\threecol{ligne}{C-p}{C-n}
-\threecol{aller au d\'ebut (ou \`a la fin) de la ligne}{C-a}{C-e}
-\threecol{phrase}{M-a}{M-e}
-\threecol{paragraphe}{M-\{}{M-\}}
-\threecol{page}{C-x [}{C-x ]}
-\threecol{s-expression}{C-M-b}{C-M-f}
-\threecol{fonction}{C-M-a}{C-M-e}
-\threecol{aller au d\'ebut (ou \`a la fin) du tampon}{M-<}{M->}
+\threecol{{\bf Objet sur lequel se d\'eplacer}}{{\bf En
+    arri\`ere}}{{\bf En avant}}
+\threecol{Caract\`ere}{C-b}{C-f}
+\threecol{Mot}{M-b}{M-f}
+\threecol{Ligne}{C-p}{C-n}
+\threecol{Aller en d\'ebut/fin de la ligne}{C-a}{C-e}
+\threecol{Phrase}{M-a}{M-e}
+\threecol{Paragraphe}{M-\{}{M-\}}
+\threecol{Page}{C-x [}{C-x ]}
+\threecol{S-expression}{C-M-b}{C-M-f}
+\threecol{Fonction}{C-M-a}{C-M-e}
+\threecol{Aller en d\'ebut/fin du tampon}{M-<}{M->}
 }
 
-\key{passer \`a l'\'ecran suivant}{C-v}
-\key{passer \`a l'\'ecran pr\'ec\'edent}{M-v}
-\key{d\'efiler l'\'ecran vers la droite}{C-x <}
-\key{d\'efiler l'\'ecran vers la gauche}{C-x >}
-\key{placer la ligne courante au centre de l'\'ecran}{C-u C-l}
+\key{Passer \`a l'\'ecran suivant}{C-v}
+\key{Passer \`a l'\'ecran pr\'ec\'edent}{M-v}
+\key{Faire d\'efiler l'\'ecran vers la gauche}{C-x <}
+\key{Faire d\'efiler l'\'ecran vers la droite}{C-x >}
+\key{Placer la ligne courante au centre de l'\'ecran}{C-u C-l}
 
 \section{D\'etruire et supprimer}
 
 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
-\threecol{{\bf entit\'e \`a supprimer}}{{\bf en arri\`ere}}{{\bf en avant}}
-\threecol{caract\`ere (suppression, pas destruction)}{DEL}{C-d}
-\threecol{mot}{M-DEL}{M-d}
-\threecol{ligne (jusqu'\`a la fin)}{M-0 C-k}{C-k}
-\threecol{phrase}{C-x DEL}{M-k}
-\threecol{s-expression}{M-- C-M-k}{C-M-k}
+\threecol{{\bf Objet \`a supprimer}}{{\bf En arri\`ere}}{{\bf En avant}}
+\threecol{Caract\`ere (suppression)}{DEL}{C-d}
+\threecol{Mot}{M-DEL}{M-d}
+\threecol{Ligne (jusqu'au d\'ebut/fin)}{M-0 C-k}{C-k}
+\threecol{Phrase}{C-x DEL}{M-k}
+\threecol{S-expression}{M-- C-M-k}{C-M-k}
 }
 
-\key{d\'etruire une {\bf r\'egion}}{C-w}
-\key{copier une r\'egion dans le kill ring}{M-w}
-\key{d\'etruire jusqu'\`a l'occurrence suivante de {\it car}}{M-z {\it car}}
+\key{D\'etruire une {\bf r\'egion}}{C-w}
+\key{Copier une r\'egion dans le {\it kill ring}}{M-w}
+\key{D\'etruire jusqu'\`a l'occurrence suivante de {\it car}}{M-z {\it car}}
 
-\key{r\'ecup\'erer la derni\`ere chose d\'etruite}{C-y}
-\key{remplacer la derni\`ere r\'ecup\'eration par ce qui a \'et\'e d\'etruit avant}{M-y}
+\key{R\'ecup\'erer la derni\`ere r\'egion d\'etruite}{C-y}
+\key{R\'ecup\'erer la r\'egion d\'etruite pr\'ec\'edente}{M-y}
 
 \section{Marquer}
 
-\key{placer la marque ici}{C-@ {\rm ou} C-SPC}
-\key{\'echanger le point et la marque}{C-x C-x}
+\key{Placer la marque au point}{C-@ {\rm ou} C-SPC}
+\key{\'Echanger le point et la marque}{C-x C-x}
 
-\key{placer la marque {\it arg\/} {\bf mots} plus loin}{M-@}
-\key{marquer le {\bf paragraphe}}{M-h}
-\key{marquer la {\bf page}}{C-x C-p}
-\key{marquer la {\bf s-expression}}{C-M-@}
-\key{marquer la {\bf fonction}}{C-M-h}
-\key{marquer tout le {\bf tampon}}{C-x h}
+\key{Placer la marque un {\bf mot} plus loin}{M-@}
+\key{Marquer le {\bf paragraphe}}{M-h}
+\key{Marquer la {\bf page}}{C-x C-p}
+\key{Marquer la {\bf s-expression}}{C-M-@}
+\key{Marquer la {\bf fonction}}{C-M-h}
+\key{Marquer tout le {\bf tampon}}{C-x h}
 
 \section{Remplacement interactif}
 
-\key{remplacer interactivement une cha\^\i{}ne de texte}{M-\%}
+\key{Remplacer une cha\^\i{}ne de texte}{M-\%}
 % query-replace-regexp est liee a C-M-% mais on ne peut pas le
 % taper dans une console.
-% Hack to prevent overflow. Please someone fix this properly.
-\metax{en utilisant les expressions \hskip 20pt rationnelles}
-{\hskip -30pt M-x query-replace-regexp}
+\metax{\hskip 10pt \`a l'aide d'expr. rationnelles}{M-x query-replace-regexp}
 
-Les r\'eponses admises dans le mode de remplacement interactif sont :
+R\'eponses possibles pour chaque occurrence dans le mode de
+remplacement interactif :
 
-\key{{\bf remplacer} celle-l\`a, passer \`a la suivante}{SPC}
-\key{remplacer celle-l\`a, rester l\`a}{,}
-\key{{\bf passer} \`a la suivante sans remplacer}{DEL}
-\key{remplacer toutes les correspondances suivantes}{!}
-\key{{\bf revenir} \`a la correspondance pr\'ec\'edente}{^}
-\key{{\bf sortir} du remplacement interactif}{RET}
-\key{entrer dans l'\'edition r\'ecursive (\kbd{C-M-c} pour sortir)}{C-r}
+\key{{\bf Remplacer} celle-l\`a, passer \`a la suivante}{SPC}
+\key{Remplacer celle-l\`a, rester l\`a}{,}
+\key{{\bf Passer} \`a la suivante sans remplacer}{DEL}
+\key{Remplacer toutes les occurrences suivantes}{!}
+\key{{\bf Revenir} \`a l'occurrence pr\'ec\'edente}{^}
+\key{{\bf Quitter} le remplacement interactif}{RET}
+\key{{\bf \'Editer} avant de reprendre (\kbd{C-M-c} : sortir)}{C-r}
 
 \section{Fen\^etres multiples}
 
-Lorsqu'il y a deux commandes, la seconde est une commande identique \`a
-la premi\`ere pour un cadre au lieu d'une fen\^etre.
+Lorsqu'il y a deux commandes, la seconde est celle qui concerne non
+pas les fen\^etres mais les cadres.
 
 {\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
-\threecol{supprimer toutes les autres fen\^etres}{C-x 1\ \ \ \ }{C-x 5 1}
-\threecol{diviser la fen\^etre horizontalement}{C-x 2\ \ \ \ }{C-x 5 2}
-\threecol{supprimer cette fen\^etre}{C-x 0\ \ \ \ }{C-x 5 0}
+\threecol{Supprimer toutes les autres fen\^etres}{C-x 1\ \ \ \ }{C-x 5 1}
+\threecol{Supprimer cette fen\^etre}{C-x 0\ \ \ \ }{C-x 5 0}
+\threecol{Diviser la fen\^etre horizontalement}{C-x 2\ \ \ \ }{C-x 5 2}
 }}
-\key{diviser la fen\^etre verticalement}{C-x 3}
+\key{Diviser la fen\^etre verticalement}{C-x 3}
 
-\key{faire d\'efiler l'autre fen\^etre}{C-M-v}
+\key{Faire d\'efiler l'autre fen\^etre}{C-M-v}
 
 %% tabskip reduced from 10 to 3pt to fit on letterpaper.
 {\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
 \paralign to \hsize{#\tabskip=3pt plus 1 fil&#\tabskip=0pt&#\cr
-\threecol{placer le curseur dans une autre fen\^etre}{C-x o}{C-x 5 o}
-
-%% Hack in a line break to avoid overflow.
-\threecol{\raggedright s\'electionner le tampon dans\cr
-\hskip 10pt l'autre fen\^etre}{C-x 4 b}{C-x 5 b}
-\threecol{afficher le tampon dans l'autre fen\^etre}{C-x 4 C-o}{C-x 5 C-o}
-\threecol{charger un fichier dans l'autre fen\^etre}{C-x 4 f}{C-x 5 f}
-%% Hack in a line break to avoid overflow.
-\threecol{\raggedright charger un fichier en lecture seule\cr
-\hskip 10pt dans l'autre fen\^etre}{C-x 4 r}{C-x 5 r}
-\threecol{lancer Dired  dans l'autre fen\^etre}{C-x 4 d}{C-x 5 d}
-\threecol{trouver un tag dans l'autre fen\^etre}{C-x 4 .}{C-x 5 .}
+\threecol{S\'electionner une autre fen\^etre}{C-x o}{C-x 5 o}
+
+\threecol{Choisir un tampon (autre fen\^etre)}{C-x 4 b}{C-x 5 b}
+\threecol{Afficher un tampon (autre fen\^etre)}{C-x 4 C-o}{C-x 5 C-o}
+\threecol{Lire un fichier (autre fen\^etre)}{C-x 4 f}{C-x 5 f}
+\threecol{\hskip 10pt en lecture seule}{C-x 4 r}{C-x 5 r}
+\threecol{Lancer Dired (autre fen\^etre)}{C-x 4 d}{C-x 5 d}
+\threecol{Trouver un tag (autre fen\^etre)}{C-x 4 .}{C-x 5 .}
 }}
 
-\key{agrandir la fen\^etre}{C-x ^}
-\key{rapetisser la fen\^etre}{C-x \{}
-\key{\'elargir la fen\^etre}{C-x \}}
+\key{Agrandir la fen\^etre verticalement}{C-x ^}
+\key{R\'eduire la fen\^etre horizontalement}{C-x \{}
+\key{Agrandir la fen\^etre horizontalement}{C-x \}}
 
 \section{Formater}
 
-\key{indenter la {\bf ligne} courante (d\'epend du mode)}{TAB}
-\key{indenter la {\bf r\'egion} courante (d\'epend du mode)}{C-M-\\}
-\key{indenter la {\bf s-expression} courante (d\'epend du mode)}{C-M-q}
-\key{indenter la r\'egion sur {\it arg\/} colonnes}{C-x TAB}
+\key{Indenter la {\bf ligne} courante (selon le mode)}{TAB}
+\key{Indenter la {\bf r\'egion} courante (selon le mode)}{C-M-\\}
+\key{Indenter la {\bf s-expr.} courante (selon le mode)}{C-M-q}
+\key{Indenter la r\'egion sur une colonne}{C-x TAB}
+\key{Ins\'erer un retour \`a la ligne apr\`es le point}{C-o}
+\key{D\'eplacer le reste de la ligne vers le bas}{C-M-o}
+\key{Supprimer les lignes vierges autour du point}{C-x C-o}
+\key{Joindre \`a la ligne pr\'ec\'edente (suiv. avec {\it arg\/})}{M-^}
+\key{Supprimer tous les espaces autour du point}{M-\\}
+\key{Mettre exactement une espace au point}{M-SPC}
 
-\key{ins\'erer un newline apr\`es le point}{C-o}
-\key{d\'eplacer le reste de la ligne vers le bas}{C-M-o}
-\key{supprimer les lignes blanches autour du point}{C-x C-o}
-\key{joindre la ligne \`a la pr\'ec\'edente (\`a la suivante avec arg)}{M-^}
-\key{supprimer tous les espaces autour du point}{M-\\}
-\key{mettre exactement un espace \`a l'emplacement du point}{M-SPC}
+\key{Formater le paragraphe}{M-q}
+\key{Placer la marge droite \`a {\it arg\/} colonnes}{C-u {\it arg\/} C-x f}
+\key{D\'efinir le pr\'efixe des lignes}{C-x .}
 
-\key{remplir le paragraphe}{M-q}
-\key{placer la marge droite}{C-x f}
-\key{d\'efinir le pr\'efixe par lequel commencera chaque ligne}{C-x .}
-
-\key{d\'efinir la fonte}{M-o}
+\key{D\'efinir la fonte}{M-o}
 
 \section{Modifier la casse}
 
-\key{mettre le mot en majuscules}{M-u}
-\key{mettre le mot en minuscules}{M-l}
-\key{mettre le mot en capitales}{M-c}
+\key{Mettre le mot en capitales}{M-u}
+\key{Mettre le mot en minuscules}{M-l}
+\key{Mettre une majuscule au mot}{M-c}
 
-\key{mettre la r\'egion en majuscules}{C-x C-u}
-\key{mettre la r\'egion en minuscules}{C-x C-l}
+\key{Mettre la r\'egion en capitales}{C-x C-u}
+\key{Mettre la r\'egion en minuscules}{C-x C-l}
 
 \section{Le mini-tampon}
 
-Les touches suivantes sont utilisables dans le mini-tampon :
+Dans le mini-tampon :
 
-\key{compl\'eter autant que possible}{TAB}
-\key{compl\'eter un mot}{SPC}
-\key{compl\'eter et ex\'ecuter}{RET}
-\key{montrer les compl\'etions possibles}{?}
-\key{rechercher l'entr\'ee pr\'ec\'edente du mini-tampon}{M-p}
-\key{rechercher l'entr\'ee suivante du mini-tampon ou le d\'efaut}{M-n}
-\key{rechercher \`a rebours par expr. rationnelle dans l'historique}{M-r}
-\key{rechercher vers l'avant par expr. rationnelle dans l'historique}{M-s}
-\key{annuler la commande}{C-g}
+\key{Compl\'eter autant que possible}{TAB}
+\key{Compl\'eter un mot}{SPC}
+\key{Compl\'eter et ex\'ecuter}{RET}
+\key{Montrer les compl\`etements possibles}{?}
+\key{Utiliser l'entr\'ee pr\'ec\'edente du mini-tampon}{M-p}
+\key{Utiliser l'entr\'ee suivante du mini-tampon}{M-n}
+\key{Rechercher en arri\`ere dans l'historique}{M-r}
+\key{Rechercher en avant  dans l'historique}{M-s}
+\key{Quitter en annulant la commande}{C-g}
 
-Faites \kbd{C-x ESC ESC} pour \'editer et r\'ep\'eter la derni\`ere commande
-ayant utilis\'e le minitampon. Faites \kbd{F10} pour activer la barre de
-menu utilisant le minitampon.
+Faites \kbd{C-x ESC ESC} pour \'editer et r\'ep\'eter la derni\`ere
+commande ayant utilis\'e le mini-tampon. Faites \kbd{F10} pour
+utiliser la barre de menu sur un terminal en utilisant le mini-tampon.
 
 \newcolumn
 \title{Carte de r\'ef\'erence de GNU Emacs}
 
 \section{Tampons}
 
-\key{s\'electionner un autre tampon}{C-x b}
-\key{\'enum\'erer tous les tampons}{C-x C-b}
-\key{supprimer un tampon}{C-x k}
+\key{Choisir un autre tampon}{C-x b}
+\key{Lister tous les tampons}{C-x C-b}
+\key{Supprimer un tampon}{C-x k}
 
 \section{Transposer}
 
-\key{transposer des {\bf caract\`eres}}{C-t}
-\key{transposer des {\bf mots}}{M-t}
-\key{transposer des {\bf lignes}}{C-x C-t}
-\key{transposer des {\bf s-expressions}}{C-M-t}
+\key{Transposer des {\bf caract\`eres}}{C-t}
+\key{Transposer des {\bf mots}}{M-t}
+\key{Transposer des {\bf lignes}}{C-x C-t}
+\key{Transposer des {\bf s-expressions}}{C-M-t}
 
 \section{V\'erifier l'orthographe}
 
-\key{v\'erifier l'orthographe du mot courant}{M-\$}
-\metax{v\'erifier l'orthographe de tous les mots d'une r\'egion}{M-x ispell-region}
-\metax{v\'erifier l'orthographe de tout le tampon}{M-x ispell-buffer}
+\key{V\'erifier l'orthographe du mot courant}{M-\$}
+\metax{V\'erifier l'orthographe d'une r\'egion}{M-x ispell-region}
+\metax{V\'erifier l'orthographe de tout le tampon}{M-x ispell-buffer}
 
 \section{Tags}
 
-\key{trouver un tag (une d\'efinition)}{M-.}
-\key{trouver l'occurrence suivante du tag}{C-u M-.}
-\metax{sp\'ecifier un nouveau fichier de tags}{M-x visit-tags-table}
+\key{Trouver un tag (une d\'efinition)}{M-.}
+\key{Passer \`a l'occurrence suivante du tag}{C-u M-.}
+\metax{Sp\'ecifier un autre fichier de tags}{M-x visit-tags-table}
+
+\metax{Rechercher dans tous les fichiers des tags}{M-x tags-search}
 
-\metax{rechercher par expr. rationnelles dans tous les fichiers du
-  tableau de tags}{M-x tags-search}
-%% Overflow hack.
-\metax{lancer un remplacement interactif sur tous les fichiers}%
-{\hskip -9pt M-x tags-query-replace}
-\key{continuer la derni\`ere recherche de tags ou le remplacement interactif}{M-,}
+\metax{Remplacer dans tous les fichiers}{M-x tags-query-replace}
+\key{Continuer la recherche ou le remplacement}{M-,}
 
-\section{Shells}
+\section{Shell}
 
-\key{ex\'ecuter une commande shell}{M-!}
-\key{lancer une commande shell sur la r\'egion}{M-|}
-\key{filtrer la r\'egion avec une commande shell}{C-u M-|}
-\key{lancer un shell dans la fen\^etre \kbd{*shell*}}{M-x shell}
+\key{Ex\'ecuter une commande shell}{M-!}
+\key{Lancer une commande shell sur la r\'egion}{M-|}
+\key{Filtrer la r\'egion avec une commande shell}{C-u M-|}
+\key{Lancer un shell dans la fen\^etre {\tt *shell*}}{M-x shell}
 
 \section{Rectangles}
 
-\key{copier le rectangle dans le registre}{C-x r r}
-\key{d\'etruire le rectangle}{C-x r k}
-\key{r\'ecup\'erer le rectangle}{C-x r y}
-\key{ouvrir le rectangle, en d\'ecalant le texte \`a droite}{C-x r o}
-\key{vider le rectangle}{C-x r c}
-\key{pr\'efixer chaque ligne avec une cha\^\i{}ne}{C-x r t}
+\key{Copier le rectangle dans un registre}{C-x r r}
+\key{D\'etruire le rectangle}{C-x r k}
+\key{R\'ecup\'erer le rectangle}{C-x r y}
+\key{D\'ecaler le rectangle \`a droite}{C-x r o}
+\key{Vider le rectangle}{C-x r c}
+\key{Pr\'efixer chaque ligne du rectangle}{C-x r t}
 
 \section{Abr\'eviations}
 
-\key{ajouter une abr\'eviation globale}{C-x a g}
-\key{ajouter une abr\'eviation locale au mode}{C-x a l}
-\key{ajouter une expansion globale pour cette abr\'eviation}{C-x a i g}
-\key{ajouter une expansion locale au mode pour cette abr\'eviation}{C-x a i l}
-\key{faire une expansion explicite de cette abr\'eviation}{C-x a e}
+\key{Ajouter une abr\'eviation globale}{C-x a g}
+\key{Ajouter une abr\'eviation locale au mode}{C-x a l}
+\key{Ajouter une expansion globale}{C-x a i g}
+\key{Ajouter une expansion locale au mode}{C-x a i l}
+\key{Faire une expansion explicite de l'abr\'eviation}{C-x a e}
 
-\key{faire une expansion dynamique du mot pr\'ec\'edent}{M-/}
+\key{Faire une expansion du mot pr\'ec\'edent}{M-/}
 
 \section{Expressions rationnelles}
 
-\key{un unique caract\`ere quelconque, sauf une fin de ligne}{. {\rm(point)}}
-\key{z\'ero r\'ep\'etition ou plus}{*}
-\key{une r\'ep\'etition ou plus}{+}
-\key{z\'ero ou une r\'ep\'etition}{?}
-\key{caract\`ere sp\'ecial pour quoter l'expression rationnelle {\it c\/}}{\\{\it c}}
-\key{alternative (``ou'')}{\\|}
-\key{regroupement}{\\( {\rm$\ldots$} \\)}
-\key{le m\^eme texte que dans le {\it n\/}i\`eme groupe}{\\{\it n}}
-\key{limite de mot}{\\b}
-\key{non limite de mot}{\\B}
+\key{Un caract\`ere quelconque, sauf fin de ligne}{. {\rm(point)}}
+\key{Z\'ero r\'ep\'etition ou plus}{*}
+\key{Une r\'ep\'etition ou plus}{+}
+\key{Z\'ero ou une r\'ep\'etition}{?}
+\key{\'Echapper le caract\`ere sp\'ecial {\it c\/}}{\\{\it c}}
+\key{Alternative (``ou'' non exclusif)}{\\|}
+\key{Regroupement}{\\( {\rm$\ldots$} \\)}
+\key{Reprendre le texte du {\it n\/}-i\`eme groupement}{\\{\it n}}
+\key{Limite de mot}{\\b}
+\key{Non limite de mot}{\\B}
 
 %% tabskip reduced from 10 to 5pt for letterpaper.
 \paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=0pt&#\cr
-\threecol{{\bf entit\'e}}{{\bf d\'ebut}}{{\bf fin}}
-\threecol{ligne}{^}{\$}
-\threecol{mot}{\\<}{\\>}
-\threecol{tampon}{\\`}{\\'}
-
-\threecol{{\bf classe de caract\`ere}}{{\bf correspond}}
-{{\bf correspond \`a d'autres}}
-\threecol{ensemble explicite}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
-\threecol{caract\`ere de mot}{\\w}{\\W}
-%% Overflow hack.
-\threecol{\raggedright caract\`ere avec la\cr \hskip 5pt syntaxe {\it c}}%
-{\\s{\it c}}{\\S{\it c}}
+\threecol{{\bf Objet}}{{\bf D\'ebut}}{{\bf Fin}}
+\threecol{Ligne}{^}{\$}
+\threecol{Mot}{\\<}{\\>}
+\threecol{Tampon}{\\`}{\\'}
+
+\threecol{{\bf Classe de caract\`ere}}{{\bf Correspond}}%
+{{\bf Compl\'ement}}
+\threecol{Ensemble explicite}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
+\threecol{Caract\`ere de mot}{\\w}{\\W}
+\threecol{Caract\`ere avec la syntaxe {\it c}}{\\s{\it c}}{\\S{\it c}}
 }
 
 \section{Jeux de caract\`eres internationaux}
 
-\key{indiquer la langue principale}{C-x RET l}
-%% Overflow hack.
-\metax{montrer toutes les m\'ethodes de saisie}
-{\hskip -10pt M-x list-input-methods}
-\key{activer ou d\'esactiver la m\'ethode de saisie}{C-\\}
-\key{choisir le syst\`eme de codage pour la commande suivante}{C-x RET c}
-%% Overflow hack.
-\metax{montrer tous les syst\`emes de codage}%
-{\hskip -10pt M-x list-coding-systems}
-%% Overflow hack.
-\metax{choisir le syst\`eme de codage pr\'ef\'er\'e}%
-{\hskip -10pt M-x prefer-coding-system}
+\key{Pr\'eciser la langue principale}{C-x RET l}
+\metax{Lister les m\'ethodes de saisie}{M-x list-input-methods}
+\key{Activer/d\'esactiver la m\'ethode de saisie}{C-\\}
+\key{Choisir le codage pour la commande suivante}{C-x RET c}
+\metax{Lister les codages}{M-x list-coding-systems}
+\metax{Choisir le codage pr\'ef\'er\'e}{M-x prefer-coding-system}
 
 \section{Info}
 
-\key{entrer dans le visualisateur de la documentation Info}{C-h i}
-\key{chercher une fonction ou une variable pr\'ecise dans Info}{C-h S}
+\key{Lire une documentation Info}{C-h i}
+\key{Rechercher une fonction/variable dans Info}{C-h S}
 \beginindentedkeys
 
 Se d\'eplacer dans un n\oe{}ud :
 
-\key{une page plus bas}{SPC}
-\key{une page plus haut}{DEL}
-\key{d\'ebut du n\oe{}ud}{. {\rm (point)}}
+\key{Page suivante}{SPC}
+\key{Page pr\'ec\'edente}{DEL}
+\key{D\'ebut du n\oe{}ud}{. {\rm (point)}}
 
-Passer de n\oe{}ud en n\oe{}ud :
+Navigation entre n\oe{}uds :
 
-\key{n\oe{}ud {\bf suivant}}{n}
-\key{n\oe{}ud {\bf pr\'ec\'edent}}{p}
-\key{aller {\bf plus haut}}{u}
-\key{choisir un sujet de menu par son nom}{m}
-\key{choisir le {\it n\/}i\`eme sujet de menu par son num\'ero (1--9)}{{\it n}}
-\key{suivre une r\'ef\'erence crois\'ee  (on revient avec \kbd{l})}{f}
-\key{revenir au dernier n\oe{}ud visit\'e}{l}
-\key{revenir au n\oe{}ud du r\'epertoire}{d}
-\key{aller au n\oe{}ud de plus haut niveau du fichier Info}{t}
-\key{aller sur n'importe quel n\oe{}ud par son nom}{g}
+\key{N\oe{}ud {\bf suivant}}{n}
+\key{N\oe{}ud {\bf pr\'ec\'edent}}{p}
+\key{{\bf Remonter} d'un niveau}{u}
+\key{Choisir un sujet du menu par son nom}{m}
+\key{Choisir le {\it n\/}-i\`eme sujet (1--9)}{{\it n}}
+\key{Suivre une r\'ef\'erence crois\'ee (retour avec \kbd{l})}{f}
+\key{Revenir au dernier n\oe{}ud visit\'e}{l}
+\key{Aller au sommaire Info}{d}
+\key{Aller au n\oe{}ud le plus haut du manuel}{t}
+\key{Aller sur un n\oe{}ud par son nom}{g}
 
 Autres :
 
-\key{lancer le {\bf didacticiel} Info}{h}
-\key{chercher un sujet dans l'index}{i}
-\key{rechercher les n\oe{}uds avec une expression rationnelle}{s}
-\key{{\bf quitter} Info}{q}
+\key{Aller au {\bf didacticiel} Info}{h}
+\key{Rechercher un sujet dans l'index}{i}
+\key{Rechercher un n\oe{}ud par expr. rationnelle}{s}
+\key{{\bf Quitter} Info}{q}
 
 \endindentedkeys
 
 \section{Registres}
 
-\key{sauver la r\'egion dans un registre}{C-x r s}
-\key{ins\'erer le contenu du registre dans le tampon}{C-x r i}
+\key{Sauver la r\'egion dans un registre}{C-x r s}
+\key{Ins\'erer le contenu d'un registre}{C-x r i}
 
-\key{sauver la valeur du point dans un registre}{C-x r SPC}
-\key{sauter au point sauv\'e dans le registre}{C-x r j}
+\key{Sauver la valeur du point dans un registre}{C-x r SPC}
+\key{Aller au point sauv\'e dans un registre}{C-x r j}
 
 \section{Macros clavier}
 
-\key{{\bf lancer} la d\'efinition d'une macro clavier}{C-x (}
-\key{{\bf terminer} la d\'efinition d'une macro clavier}{C-x )}
-\key{{\bf ex\'ecuter} la derni\`ere macro clavier d\'efinie}{C-x e}
-\key{ajouter \`a la derni\`ere macro clavier}{C-u C-x (}
-\metax{donner un nom \`a la derni\`ere macro clavier}{M-x name-last-kbd-macro}
-\metax{ins\'erer une d\'efinition Lisp dans le tampon}{M-x insert-kbd-macro}
+\key{{\bf Lancer} la d\'efinition d'une macro clavier}{C-x (}
+\key{{\bf Terminer} la d\'efinition d'une macro clavier}{C-x )}
+\key{{\bf Ex\'ecuter} la derni\`ere macro clavier d\'efinie}{C-x e}
+\key{Faire un ajout \`a la derni\`ere macro clavier}{C-u C-x (}
+\metax{Nommer la derni\`ere macro clavier}{M-x name-last-kbd-macro}
+\metax{En ins\'erer une d\'efinition Lisp}{M-x insert-kbd-macro}
 
 \section{Commandes de gestion d'Emacs Lisp}
 
-\key{\'evaluer la {\bf s-expression} situ\'ee avant le point}{C-x C-e}
-\key{\'evaluer la {\bf defun} courante}{C-M-x}
-\metax{\'evaluer la {\bf r\'egion}}{M-x eval-region}
-\key{lire et \'evaluer le mini-tampon}{M-:}
-\metax{charger \`a partir du r\'epertoire syst\`eme standard}{M-x load-library}
+\key{\'Evaluer la {\bf s-expression} avant le point}{C-x C-e}
+\key{\'Evaluer la {\bf defun} courante}{C-M-x}
+\metax{\'Evaluer la {\bf r\'egion}}{M-x eval-region}
+\key{Lire et \'evaluer dans le mini-tampon}{M-:}
+\metax{Charger depuis un r\'epertoire standard}{M-x load-library}
 
 \section{Personnalisation simple}
 
-\metax{personnaliser les variables et les fontes}{M-x customize}
+\metax{Personnaliser les variables et les fontes}{M-x customize}
 
 % The intended audience here is the person who wants to make simple
 % customizations and knows Lisp syntax.
 
-Cr\'eation de liaisons de touches globales en Emacs Lisp (exemples):
+Exemples de d\'efinition globale de touches en Emacs Lisp :
 
 \beginexample%
 (global-set-key "\\C-cg" 'goto-line)
@@ -683,7 +657,8 @@ Cr\'eation de liaisons de touches globales en Emacs Lisp (exemples):
 
 \beginexample%
 (defun \<nom-commande> (\<args>)
-  "\<documentation>" (interactive "\<template>")
+  "\<documentation>"
+  (interactive "\<template>")
   \<body>)
 \endexample
 
@@ -691,8 +666,7 @@ Exemple :
 
 \beginexample%
 (defun cette-ligne-en-haut-de-la-fenetre (line)
-%% Leading space omitted to avoid linebreak and underfull hbox.
-"Repositionne la ligne du point en haut de la fenetre.
+  "Positionne la ligne courante en haut de la fen\^etre.
 Avec ARG, place le point sur la ligne ARG."
   (interactive "P")
   (recenter (if (null line)
index 8c8d3288841f88e009d4b5b5c382dc19bf843229..7f7784bc9578b33d8dfe83c9e26a417de1fec4b0 100644 (file)
@@ -330,7 +330,7 @@ the directions.  If you are a first-time user, type \kbd{C-h t} for a
 \key{abort current search}{C-g}
 
 Use \kbd{C-s} or \kbd{C-r} again to repeat the search in either direction.
-If Emacs is still searching, \kbd{C-g} cancels only the part not done.
+If Emacs is still searching, \kbd{C-g} cancels only the part not matched.
 
 \shortcopyrightnotice
 
@@ -478,7 +478,7 @@ The following keys are defined in the minibuffer.
 \key{abort command}{C-g}
 
 Type \kbd{C-x ESC ESC} to edit and repeat the last command that used the
-minibuffer.  Type \kbd{F10} to activate the menu bar using the minibuffer.
+minibuffer.  Type \kbd{F10} to activate menu bar items on text terminals.
 
 \newcolumn
 \title{GNU Emacs Reference Card}
@@ -657,7 +657,7 @@ An example:
 
 \beginexample%
 (defun this-line-to-top-of-window (line)
-  "Reposition line point is on to top of window.
+  "Reposition current line to top of window.
 With ARG, put point on line ARG."
   (interactive "P")
   (recenter (if (null line)
index 9bf18f4e6da0f25fd0b27fb9ca65be04d8ad0f5b..f4bfce06bb38f1a0ea476dfc02837d19be7316b2 100644 (file)
@@ -1,3 +1,7 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
 2007-01-30  Kenichi Handa  <handa@m17n.org>
 
        * CXTERM-DIC/CCDOSPY.tit, CXTERM-DIC/PY-b5.tit, CXTERM-DIC/SW.tit,
index 04657225ab0f6924479e70d81693d1e95d4a9bf3..262baf252a4955ec205576b783a1120c3ce33703 100644 (file)
@@ -1,3 +1,7 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
 2007-02-26  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 
        * Makefile.in (etags, ctags): Define EMACS_NAME as "GNU Emacs".
index ceba5c6f6d19ec08a700ab7a32dcf491f6dfb236..5face04b081489f893f8452abc25a078de0bbc98 100644 (file)
@@ -24,7 +24,7 @@ ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc emacs
 
 .PHONY: $(ALL)
 
-VERSION                = 22.0.99
+VERSION                = 22.1
 
 LOCAL_FLAGS    = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
                  -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \
index 9bb0c6a686e84b2f6b232f5e38314d6c4287dbb1..678bffb29b10ff0715226fed9286b0ea78224e6f 100644 (file)
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
+2007-06-01  Chong Yidong  <cyd@stupidchicken.com>
+
+       * paren.el (show-paren-function): Undo 2007-04-19 and 2007-04-20
+       changes.
+
+2007-05-31  Richard Stallman  <rms@gnu.org>
+
+       * dired.el (dired-do-delete, dired-do-flagged-delete): Doc fixes.
+
+2007-05-29  Martin Rudalics  <rudalics@gmx.at>
+
+       * textmodes/table.el (table--point-entered-cell-function)
+       (table--point-left-cell-function): Bind
+       `inhibit-point-motion-hooks' to t.
+
+2007-05-29  Nikolaj Schumacher  <n_schumacher@web.de>  (tiny change)
+
+       * emacs-lisp/rx.el (rx): Doc fix.
+
+2007-05-28  Chong Yidong  <cyd@stupidchicken.com>
+
+       * textmodes/sgml-mode.el (sgml-point-entered): Use condition-case.
+
+2007-05-27  Tetsurou Okazaki  <okazaki@be.to>  (tiny change)
+
+       * log-edit.el (log-edit-changelog-paragraph): Return point-max
+       as the end of the ChangeLog paragraph when it ends without a line
+       termination.
+
+2007-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * textmodes/fill.el (canonically-space-region): Make the second arg
+       a marker if it's not already the case.
+
+       * xt-mouse.el (xterm-mouse-truncate-wrap): New function.
+       (xterm-mouse-event): Use it.
+
+2007-05-25  Miles Bader  <miles@fencepost.gnu.org>
+
+       * vc-hooks.el (vc-find-root): Fix file attribute test.
+
+2007-05-24  Richard Stallman  <rms@gnu.org>
+
+       * textmodes/flyspell.el (flyspell-correct-word-before-point):
+       Don't let opoint be nil.
+       (flyspell-emacs-popup): Explicit error if no dialogs.
+
+2007-05-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * tar-mode.el (tar-file-name-handler): New function.
+       (tar-extract): Bind file-name-handler-alist to it to force
+       find-buffer-file-type-coding-system behave as if the file being
+       extracted existed.  Use last-coding-system-used to force
+       buffer-file-coding-system to what decode-coding-region actually
+       used to decode the file.
+
+2007-05-23  Nikolaj Schumacher  <n_schumacher@web.de>  (tiny change)
+
+       * progmodes/compile.el (compilation-handle-exit):
+       `compilation-finish-function' may change the current buffer.
+
+2007-05-22  Richard Stallman  <rms@gnu.org>
+
+       * files.el (set-auto-mode): Doc fix.
+
+2007-05-22  Eli Zaretskii  <eliz@gnu.org>
+
+       * dos-w32.el (find-buffer-file-type-coding-system): Doc fix.
+
+2007-05-21  Trent Buck  <trentbuck@gmail.com>  (tiny change)
+
+       * net/rcirc.el (rcirc-fill-column): Allow `window-width'.
+       (rcirc-print): Handle `window-width'.
+       (rcirc-buffer-maximum-lines): Doc fix.
+
+2007-05-19  Kevin Ryde  <user42@zip.com.au>
+
+       * info.el (Info-fontify-node): Match https also.
+
+2007-05-18  Richard Stallman  <rms@gnu.org>
+
+       * simple.el (push-mark): Doc fix.
+
+2007-05-18  Rob Riepel  <riepel@Stanford.EDU>
+
+       * emulation/tpu-edt.el (CSI-map, SS3-map): Move from global-map to
+       tpu-global-map.
+       (tpu-original-global-map): Delete variable.
+       (tpu-control-keys-map): New keymap variable.
+       (tpu-set-control-keys): Use tpu-reset-control-keys rather than
+       setting keymapping directly.
+       (tpu-reset-control-keys): Use tpu-control-keys-map instead of
+       tpu-global-map.
+       (tpu-edt-on): Activate the tpu-global-map.
+       (tpu-edt-off): Deactivate the tpu-global-map.
+
+2007-05-18  Ryan Yeske  <rcyeske@gmail.com>
+
+       * textmodes/ispell.el (ispell-get-word): Return markers
+       for start and end positions.
+       (ispell-word): Assume END is a marker.
+
+2007-05-17  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Use default color when foreground or background color
+       are unspecified.  Reported by Leo <sdl.web@gmail.com>.
+       (ps-print-version): New version 6.7.4.
+       (ps-rgb-color): New argument.  Use default color when color is
+       unspecified.
+       (ps-begin-job): Fix code.
+
+2007-05-17  Martin Rudalics  <rudalics@gmx.at>
+
+       * textmodes/ispell.el (ispell-start-process): Defend against bad
+       default-directory.
+
+2007-05-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * vc-hooks.el (vc-find-root): Stop searching when the user changes.
+
+2007-05-16  Richard Stallman  <rms@gnu.org>
+
+       * buff-menu.el (Buffer-menu-sort-column): Doc fix.
+
+2007-05-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * files.el (magic-mode-alist, magic-fallback-mode-alist):
+       Move the *ml, Postscript, and XmCD entries to the fallback part.
+
+       * files.el (magic-fallback-mode-alist):
+       Rename from file-start-mode-alist.
+
+2007-05-16  Nikolaj Schumacher  <n_schumacher@web.de>  (tiny change)
+
+       * progmodes/compile.el (compilation-handle-exit): Quote first
+       argument of `run-hook-with-args'.
+
+2007-05-16  Juanma Barranquero  <lekktu@gmail.com>
+
+       * buff-menu.el (Buffer-menu-sort-column):
+       * dabbrev.el (dabbrev-upcase-means-case-search):
+       * dired.el (dired-recursive-deletes, dired-recursive-copies):
+       * info.el (Info-current-subfile):
+       * ls-lisp.el (ls-lisp-verbosity):
+       * msb.el (msb-menu-cond):
+       * pcvs.el (cvs-dired-use-hook):
+       * simple.el (set-mark-command-repeat-pop):
+       * time.el (display-time-24hr-format, display-time-mail-file):
+       Doc fixes.
+
+       * tutorial.el (get-lang-string, tutorial--find-changed-keys):
+       * printing.el (pr-ps-fast-fire): Fix typos in docstrings.
+
+       * view.el (view-inhibit-help-message): Fix typo in docstring.
+       (view-scroll-auto-exit, view-try-extend-at-buffer-end): Doc fixes.
+
+2007-05-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * mail/rmail.el (rmail-convert-to-babyl-format):
+       Check content-transfer-encoding _last_, because we need its position
+       in base64-header-field-end.
+
+2007-05-14  Juanma Barranquero  <lekktu@gmail.com>
+
+       * files.el (mode-require-final-newline, require-final-newline)
+       (enable-local-variables, enable-local-eval): Doc fixes.
+
+2007-05-10  Edward O'Connor  <hober0@gmail.com>  (tiny change)
+
+       * progmodes/python.el (python-font-lock-keywords)
+       (python-open-block-statement-p, python-mode): Add support for the new
+       "with" keyword.
+
+2007-05-10  Richard Stallman  <rms@gnu.org>
+
+       * international/iso-cvt.el (iso-cvt-read-only): Ignore arguments.
+       (iso-cvt-write-only): Likewise.
+
+       * emacs-lisp/easy-mmode.el (define-minor-mode):
+       Fix generated doc string.
+
+       * startup.el (fancy-splash-text): Add URL of guided tour.
+       Adjust horizontal and vertical whitespace.
+
+       * progmodes/compile.el (compilation-handle-exit):
+       Use run-hook-with-args to run compilation-finish-functions.
+
+       * files.el (file-start-mode-alist): New variable.
+       (magic-mode-regexp-match-limit): Doc fix.
+       (set-auto-mode): Handle file-start-mode-alist.
+       A little cleanup of structure.
+
+2007-05-10  Davis Herring  <herring@lanl.gov>
+
+       * calendar/timeclock.el (timeclock-in): Fix non-interactive
+       workday specifications.
+       (timeclock-log): Don't kill the log buffer if it already existed.
+
+2007-05-08  Richard Stallman  <rms@gnu.org>
+
+       * mail/mailabbrev.el (sendmail-pre-abbrev-expand-hook):
+       Don't include non-self-insert commands in the exception for `-'.
+
+2007-05-08  David Reitter  <david.reitter@gmail.com>
+
+       * progmodes/python.el (python-guess-indent): Check non-nullness
+       before comparing indent against the 2..8 interval.
+
+2007-05-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * term/mac-win.el (mac-ts-unicode-for-key-event): Check if text is
+       available.
+
+2007-05-06  Richard Stallman  <rms@gnu.org>
+
+       * emacs-lisp/eldoc.el (turn-on-eldoc-mode): Doc fix.
+
+2007-05-03  Ryan Yeske  <rcyeske@gmail.com>
+
+       * net/rcirc.el (rcirc-timeout-seconds): Increase to prevent unwanted
+       disconnections.
+
+2007-05-01  Romain Francoise  <romain@orebokech.com>
+
+       * dired-x.el: Revert 2007-04-06 change.
+
+2007-04-30  Nick Roberts  <nickrob@snap.net.nz>
+
+       * progmodes/gud.el (gud-menu-map): Pdb can't handle SIGINT so
+       don't put stop on toolbar.
+
+2007-04-29  Stephen Berman  <Stephen.Berman@gmx.net>
+
+       * find-dired.el (find-dired-filter): Propertize all text down to eob.
+
+2007-04-29  Richard Stallman  <rms@gnu.org>
+
+       * international/mule.el (auto-coding-alist): Add pdf => no-conversion.
+
+2007-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * progmodes/cc-mode.el (c-before-change): Use point-min rather
+       than 1.
+
+2007-04-28  Richard Stallman  <rms@gnu.org>
+
+       * progmodes/sh-script.el (sh-mode): Recognize .profile as sh style.
+
+2007-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * vc-hooks.el (vc-ignore-dir-regexp): Add /.../ for the DFS filesystem.
+
+2007-04-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in ($(lisp)/mh-e/mh-loaddefs.el): Use ./mh-e
+       instead of $(lisp)/mh-e.
+
+       * textmodes/fill.el (fill-paragraph): Doc fix.
+
+2007-04-28  Glenn Morris  <rgm@gnu.org>
+
+       * image-dired.el (image-dired-cmd-create-thumbnail-options)
+       (image-dired-cmd-create-temp-image-options): Replace option
+       +profile "*" with -strip.
+
+2007-04-27  Chong Yidong  <cyd@stupidchicken.com>
+
+       * textmodes/flyspell.el (flyspell-auto-correct-previous-word):
+       Use window-start and window-end.
+
+2007-04-26  Glenn Morris  <rgm@gnu.org>
+
+       * progmodes/python.el: Restore file pending consideration of legal
+       status.
+
+2007-04-26  Luc Teirlinck  <teirllm@dms.auburn.edu>
+
+       * locate.el (locate-in-alternate-database): Doc fix.
+
+2007-04-26  Glenn Morris  <rgm@gnu.org>
+
+       * button.el (button): Use underline if supported, else fall back
+       to color.
+
+2007-04-25  Richard Stallman  <rms@gnu.org>
+
+       * hi-lock.el (hi-lock-file-patterns-policy): Default to `ask'.
+
+2007-04-25  J.D. Smith  <jdsmith@as.arizona.edu>
+
+       * progmodes/idlwave.el (idlwave-beginning-of-subprogram)
+       (idlwave-end-of-subprogram): Take optional NOMARK arg to prevent
+       pushing mark.
+       (idlwave-current-routine): Don't push mark.
+
+2007-04-25  Mathias Dahl  <mathias.dahl@gmail.com>
+
+       * image-dired.el (image-dired-display-image): Derive image-type from
+       filename rather than assuming jpeg, in case no resizing was needed.
+
+2007-04-25  Johan Bockg\e,Ae\e(Brd  <bojohan@dd.chalmers.se>
+
+       * custom.el (defface): Doc fix.
+
 2007-04-24  Chong Yidong  <cyd@stupidchicken.com>
 
-       * progmodes/python.el: File removed due to unclear legal status.
+       * progmodes/python.el: Remove due to unclear legal issues.
 
 2007-04-24  J.D. Smith  <jdsmith@as.arizona.edu>
 
-       * progmodes/idlw-shell.el (idlwave-shell-clear-all-bp): Don't
-       re-query for each cleared BP.
+       * progmodes/idlw-shell.el (idlwave-shell-clear-all-bp):
+       Don't re-query for each cleared BP.
        (idlwave-shell-clear-bp): Optionally skip BP query.
-       (idlwave-shell-update-bp-overlays): Use set-window-margins
-       instead of set-window-buffer, which incorrectly moves displayed
-       region.
+       (idlwave-shell-update-bp-overlays): Use set-window-margins instead
+       of set-window-buffer, which incorrectly moves displayed region.
 
 2007-04-23  Jay Belanger  <jay.p.belanger@gmail.com>
 
 
 2007-04-23  Chong Yidong  <cyd@stupidchicken.com>
 
-       * info.el (Info-mouse-scroll-up, Info-mouse-scroll-down): New
-       functions.
+       * info.el (Info-mouse-scroll-up, Info-mouse-scroll-down):
+       New functions.
        (Info-mode-line-node-keymap): Bind mouse commands to
        Info-mouse-scroll-up/down instead of Info-scroll-up/down.
 
        (locate-prompt-for-search-string): New function.
        (locate): New optional arg.  Make locate-local-prompt
        buffer-local.  Use locate-prompt-for-search-string.
-       (locate-with-filter): New optional arg.  Use
-       locate-prompt-for-search-string.
+       (locate-with-filter): New optional arg.
+       Use locate-prompt-for-search-string.
        (locate-update): Bind locate-prompt-for-command.
 
 2007-04-23  Glenn Morris  <rgm@gnu.org>
        * progmodes/vhdl-mode.el (vhdl-template-type)
        (vhdl-template-record, vhdl-template-nature)
        (vhdl-template-configuration-spec, vhdl-template-component-inst)
-       (vhdl-template-break, vhdl-regress-line, vhdl-electric-tab): Use
-       delete-region instead of kill-word and kill-line.
+       (vhdl-template-break, vhdl-regress-line, vhdl-electric-tab):
+       Use delete-region instead of kill-word and kill-line.
 
 2007-04-21  Johan Bockg\e,Ae\e(Brd  <bojohan@dd.chalmers.se>
 
index 4dfb876c0864a31bda11eb9486c590c48e28faa3..21ccff71d6fa3ac610649f727cf8a2f7c2823fa7 100644 (file)
 
        * international/mule.el (auto-coding-alist): Add .tgz.
 
-1999-05-2  Eli Zaretskii  <eliz@is.elta.co.il>
+1999-05-02  Eli Zaretskii  <eliz@is.elta.co.il>
 
        * international/codepage.el (cp-coding-system-for-codepage-1):
        Make the magnification parameter for the -dos encoder be 2.
 
-1999-05-2  Andrew Innes  <andrewi@gnu.org>
+1999-05-02  Andrew Innes  <andrewi@gnu.org>
 
        * term/w32-win.el (w32-drag-n-drop): Select file in window where
        it is dropped, rather than current window.
index f1336a417b94647fda8ed67cb5f0e613f514afde..a6e24b5343e783d56e56fc3da78566d72d8a600f 100644 (file)
@@ -102,8 +102,9 @@ as it is by default."
 
 ;; This should get updated & resorted when you click on a column heading
 (defvar Buffer-menu-sort-column nil
-  "2 for sorting by buffer names.  5 for sorting by file names.
-nil for default sorting by visited order.")
+  "Which column to sort the menu on.
+Use 2 to sort by buffer names, or 5 to sort by file names.
+nil means sort by visited order (the default).")
 
 (defconst Buffer-menu-buffer-column 4)
 
index 8c3681854e77c4fdbe1e1e0cfbe326b511aded9e..ebc078f81932b85e9a06d71ef75ef0742b7360c1 100644 (file)
 ;; Globals
 
 ;; Use color for the MS-DOS port because it doesn't support underline.
-;; Also for the linux console.
+;; FIXME if MS-DOS correctly answers the (supports) question, it need
+;; no longer be a special case.
 (defface button '((((type pc) (class color))
                   (:foreground "lightblue"))
-                 (((type tty)) (:inherit link))
-                 (t :underline t))
+                 (((supports :underline t)) :underline t)
+                 (t (:foreground "lightblue")))
   "Default face used for buttons."
   :group 'basic-faces)
 
index 398b2dd1de54b66817c7a1e4e3776347a1e392dd..4e6e4120404ac37342e336be12facc247c6978fb 100644 (file)
@@ -375,8 +375,9 @@ discover the name of the project."
        (setq timeclock-discrepancy
              (- (or timeclock-discrepancy 0) workday))
        (if (not (= workday timeclock-workday))
-           (timeclock-log "h" (and (numberp arg)
-                                   (number-to-string arg))))))
+           (timeclock-log "h" (number-to-string
+                               (/ workday (if (zerop (% workday (* 60 60)))
+                                              60 60.0) 60))))))
     (timeclock-log "i" (or project
                           (and timeclock-get-project-function
                                (or find-project (interactive-p))
@@ -651,31 +652,35 @@ that variable's documentation."
   "Log the event CODE to the timeclock log, at the time of call.
 If PROJECT is a string, it represents the project which the event is
 being logged for.  Normally only \"in\" events specify a project."
-  (with-current-buffer (find-file-noselect timeclock-file)
-    (goto-char (point-max))
-    (if (not (bolp))
-       (insert "\n"))
-    (let ((now (current-time)))
-      (insert code " "
-             (format-time-string "%Y/%m/%d %H:%M:%S" now)
-             (or (and project
-                      (stringp project)
-                      (> (length project) 0)
-                      (concat " " project))
-                 "")
-             "\n")
-      (if (equal (downcase code) "o")
-         (setq timeclock-last-period
-               (- (timeclock-time-to-seconds now)
-                  (timeclock-time-to-seconds
-                   (cadr timeclock-last-event)))
-               timeclock-discrepancy
-               (+ timeclock-discrepancy
-                  timeclock-last-period)))
-      (setq timeclock-last-event (list code now project)))
-    (save-buffer)
-    (run-hooks 'timeclock-event-hook)
-    (kill-buffer (current-buffer))))
+  (let ((extant-timelog (find-buffer-visiting timeclock-file)))
+    (with-current-buffer (find-file-noselect timeclock-file)
+      (save-excursion
+       (save-restriction
+         (widen)
+         (goto-char (point-max))
+         (if (not (bolp))
+             (insert "\n"))
+         (let ((now (current-time)))
+           (insert code " "
+                   (format-time-string "%Y/%m/%d %H:%M:%S" now)
+                   (or (and project
+                            (stringp project)
+                            (> (length project) 0)
+                            (concat " " project))
+                       "")
+                   "\n")
+           (if (equal (downcase code) "o")
+               (setq timeclock-last-period
+                     (- (timeclock-time-to-seconds now)
+                        (timeclock-time-to-seconds
+                         (cadr timeclock-last-event)))
+                     timeclock-discrepancy
+                     (+ timeclock-discrepancy
+                        timeclock-last-period)))
+           (setq timeclock-last-event (list code now project)))))
+      (save-buffer)
+      (run-hooks 'timeclock-event-hook)
+      (unless extant-timelog (kill-buffer (current-buffer))))))
 
 (defvar timeclock-moment-regexp
   (concat "\\([bhioO]\\)\\s-+"
index 865f20cd8d0b0294da91158f0a873bc9ac28c050..df11014f42286b65957e5b4c02ffefdb489d84de 100644 (file)
 (put 'vhdl-compile 'custom-loads '(vhdl-mode))
 (put 'ebrowse-tree 'custom-loads '(ebrowse))
 (put 'flyspell 'custom-loads '(flyspell))
+(put 'python 'custom-loads '(python))
 (put 'recentf-filters 'custom-loads '(recentf))
 (put 'ange-ftp 'custom-loads '(ange-ftp))
 (put 'erc-pcomplete 'custom-loads '(erc-pcomplete))
 (put 'gnus-thread 'custom-loads '(gnus-sum gnus-group))
 (put 'org-progress 'custom-loads '(org))
 (put 'pop3 'custom-loads '(pop3))
-(put 'languages 'custom-loads '(ps-mode ada-mode antlr-mode asm-mode cus-edit cfengine cperl-mode dcl-mode delphi f90 fortran hideshow icon idlwave info-look ld-script m4-mode meta-mode modula2 octave-mod pascal perl-mode prolog sgml-mode sh-script sieve simula tcl vhdl-mode))
+(put 'languages 'custom-loads '(ps-mode ada-mode antlr-mode asm-mode cus-edit cfengine cperl-mode dcl-mode delphi f90 fortran hideshow icon idlwave info-look ld-script m4-mode meta-mode modula2 octave-mod pascal perl-mode prolog python sgml-mode sh-script sieve simula tcl vhdl-mode))
 (put 'reftex-miscellaneous-configurations 'custom-loads '(reftex-vars))
 (put 'pong 'custom-loads '(pong))
 (put 'ediff-ptch 'custom-loads '(ediff-ptch))
@@ -804,7 +805,7 @@ whether a buffer contains spam or not.")
 (custom-put-if-not 'ebnf-terminal 'group-documentation "Terminal customization.")
 (custom-put-if-not 'ebnf-terminal 'custom-tag "Terminal")
 (custom-put-if-not 'nndiary 'custom-version "22.1")
-(custom-put-if-not 'nndiary 'group-documentation "The Gnus Diary backend.")
+(custom-put-if-not 'nndiary 'group-documentation "The Gnus Diary back end.")
 (custom-put-if-not 'ps-print-page 'custom-version "20")
 (custom-put-if-not 'ps-print-page 'group-documentation "Page customization.")
 (custom-put-if-not 'ps-print-page 'custom-tag "Page")
@@ -815,6 +816,8 @@ whether a buffer contains spam or not.")
 (custom-put-if-not 'elide-head 'group-documentation "Eliding copyright headers and the like in source files.")
 (custom-put-if-not 'master 'custom-version "22.1")
 (custom-put-if-not 'master 'group-documentation "Support for master/slave relationships between buffers.")
+(custom-put-if-not 'python 'custom-version "22.1")
+(custom-put-if-not 'python 'group-documentation "Silly walks in the Python language.")
 (custom-put-if-not 'ebnf-shape 'custom-version "20")
 (custom-put-if-not 'ebnf-shape 'group-documentation "Shapes customization.")
 (custom-put-if-not 'ebnf-shape 'custom-tag "Shape")
@@ -893,7 +896,7 @@ as a PDF file <URL:http://www.ecma.ch/ecma1/STAND/ECMA-048.HTM>.")
 (custom-put-if-not 'ps-print-color 'group-documentation "Color customization.")
 (custom-put-if-not 'ps-print-color 'custom-tag "Color")
 (custom-put-if-not 'gnus-diary 'custom-version "22.1")
-(custom-put-if-not 'gnus-diary 'group-documentation "Utilities on top of the nndiary backend for Gnus.")
+(custom-put-if-not 'gnus-diary 'group-documentation "Utilities on top of the nndiary back end for Gnus.")
 (custom-put-if-not 'ebnf-optimization 'custom-version "20")
 (custom-put-if-not 'ebnf-optimization 'group-documentation "Optimization customization.")
 (custom-put-if-not 'ebnf-optimization 'custom-tag "Optimization")
index d53951793d24f49c43beca2b45b63c034a574ff5..f5028ddc0d58770859508d0b03b5cad1a57fa9e9 100644 (file)
@@ -331,7 +331,7 @@ For a list of valid keywords, see the common keywords listed in
 
 SPEC should be an alist of the form ((DISPLAY ATTS)...).
 
-In the first element, DISPLAY can be :default.  The ATTS in that
+In the first element, DISPLAY can be `default'.  The ATTS in that
 element then act as defaults for all the following elements.
 
 Aside from that, DISPLAY specifies conditions to match some or
@@ -341,7 +341,7 @@ frame.  The ATTRs in this element take effect, and the following
 elements are ignored, on that frame.
 
 In the last element, DISPLAY can be t.  That element applies to a
-frame if none of the previous elements (except the :default if
+frame if none of the previous elements (except the `default' if
 any) did.
 
 ATTS is a list of face attributes followed by their values:
@@ -351,7 +351,7 @@ The possible attributes are `:family', `:width', `:height', `:weight',
 `:slant', `:underline', `:overline', `:strike-through', `:box',
 `:foreground', `:background', `:stipple', `:inverse-video', and `:inherit'.
 
-DISPLAY can be `:default' (only in the first element), the symbol
+DISPLAY can be `default' (only in the first element), the symbol
 t (only in the last element) to match all frames, or an alist of
 conditions of the form \(REQ ITEM...).  For such an alist to
 match a frame, each of the conditions must be satisfied, meaning
index ae16b52ee7d31cc03ab07fbd8e70f644b1dffdf6..3e65f05693239efa079401a31b8936bb32b3445f 100644 (file)
@@ -147,7 +147,7 @@ Any other non-nil version means case is not significant."
 
 (defcustom dabbrev-upcase-means-case-search nil
   "*The significance of an uppercase character in an abbreviation.
-nil means case fold search when searching for possible expansions;
+A nil value means case fold search when searching for possible expansions;
 non-nil means case sensitive search.
 
 This variable has an effect only when the value of
index eecb1dbb7090059fe1537411c0a8cb12789aa1a6..75b6456a5cfa5ff92a97f85788169f8585a1af9f 100644 (file)
 ;; (add-hook 'dired-load-hook
 ;;           (function (lambda ()
 ;;                       (load "dired-x")
-;;                       ;; Set variables here.  For example:
+;;                       ;; Set global variables here.  For example:
 ;;                       ;; (setq dired-guess-shell-gnutar "gtar")
+;;                       )))
+;; (add-hook 'dired-mode-hook
+;;           (function (lambda ()
+;;                       ;; Set buffer-local variables here.  For example:
 ;;                       ;; (dired-omit-mode 1)
 ;;                       )))
 ;;
@@ -1123,11 +1127,17 @@ You can set this variable in your ~/.emacs.  For example, to add rules for
   :group 'dired-x
   :type '(alist :key-type regexp :value-type (repeat sexp)))
 
+(defcustom dired-guess-shell-case-fold-search t
+  "If non-nil, `dired-guess-shell-alist-default' and
+`dired-guess-shell-alist-user' are matched case-insensitively."
+  :group 'dired-x
+  :type 'boolean)
+
 (defun dired-guess-default (files)
   "Guess a shell commands for FILES.  Return command or list of commands.
 See `dired-guess-shell-alist-user'."
 
-  (let* ((case-fold-search t)
+  (let* ((case-fold-search dired-guess-shell-case-fold-search)
          ;; Prepend the user's alist to the default alist.
          (alist (append dired-guess-shell-alist-user
                         dired-guess-shell-alist-default))
index c618eec515955b1f6e037bd9f94f3a2bcd14a048..7f6e919a1096115e7669797455ec4a6c2e64b8a3 100644 (file)
@@ -1360,10 +1360,10 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map
       [menu-bar regexp image-dired-mark-tagged-files]
       '(menu-item "Mark From Image Tag..." image-dired-mark-tagged-files
-                  :help "Mark files whose image tags matches regexp"))    
-    
+                  :help "Mark files whose image tags matches regexp"))
+
     (define-key map [menu-bar regexp dashes-1]
-      '("--"))    
+      '("--"))
 
     (define-key map [menu-bar regexp downcase]
       '(menu-item "Downcase" dired-downcase
@@ -1471,9 +1471,9 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
       [menu-bar operate image-dired-display-thumbs]
       '(menu-item "Display Image-Dired" image-dired-display-thumbs
                   :help "Display image-dired for current or marked image files"))
-    
+
     (define-key map [menu-bar operate dashes-3]
-      '("--"))    
+      '("--"))
 
     (define-key map [menu-bar operate query-replace]
       '(menu-item "Query Replace in Files..." dired-do-query-replace-regexp
@@ -2364,7 +2364,7 @@ Optional argument means return a file name relative to `default-directory'."
 
 (defcustom dired-recursive-deletes nil ; Default only delete empty directories.
   "*Decide whether recursive deletes are allowed.
-nil means no recursive deletes.
+A value of nil means no recursive deletes.
 `always' means delete recursively without asking.  This is DANGEROUS!
 `top' means ask for each directory at top level, but delete its subdirectories
 without asking.
@@ -2410,7 +2410,9 @@ Anything else, ask for each sub-directory."
 (defun dired-do-flagged-delete (&optional nomessage)
   "In Dired, delete the files flagged for deletion.
 If NOMESSAGE is non-nil, we don't display any message
-if there are no flagged files."
+if there are no flagged files.
+`dired-recursive-deletes' controls whether 
+deletion of non-empty directories is allowed."
   (interactive)
   (let* ((dired-marker-char dired-del-marker)
         (regexp (dired-marker-regexp))
@@ -2426,7 +2428,9 @@ if there are no flagged files."
          (message "(No deletions requested)")))))
 
 (defun dired-do-delete (&optional arg)
-  "Delete all marked (or next ARG) files."
+  "Delete all marked (or next ARG) files.
+`dired-recursive-deletes' controls whether 
+deletion of non-empty directories is allowed."
   ;; This is more consistent with the file marking feature than
   ;; dired-do-flagged-delete.
   (interactive "P")
@@ -3101,7 +3105,7 @@ The idea is to set this buffer-locally in special dired buffers.")
   (when (eq major-mode 'dired-mode)
     (setq mode-name
          (let (case-fold-search)
-           (cond ((string-match 
+           (cond ((string-match
                    dired-sort-by-name-regexp dired-actual-switches)
                   "Dired by name")
                  ((string-match
@@ -3208,7 +3212,7 @@ To be called first in body of `dired-sort-other', etc."
 
 (defcustom dired-recursive-copies nil
   "*Decide whether recursive copies are allowed.
-nil means no recursive copies.
+A value of nil means no recursive copies.
 `always' means copy recursively without asking.
 `top' means ask for each directory at top level.
 Anything else means ask for each directory."
index aeebb9c3d0869853ef1cce13857b478acc0459e6..b1dc399418a45bc5c8dd7e6cbd51d1fb77b0382e 100644 (file)
@@ -92,7 +92,7 @@ against the file name, and TYPE is nil for text, t for binary.")
 
 (defun find-buffer-file-type-coding-system (command)
   "Choose a coding system for a file operation in COMMAND.
-COMMAND is a list that specifies the operation, and I/O primitive as its
+COMMAND is a list that specifies the operation, an I/O primitive, as its
 CAR, and the arguments that might be given to that operation as its CDR.
 If operation is `insert-file-contents', the coding system is chosen based
 upon the filename (the CAR of the arguments beyond the operation), the contents
@@ -109,6 +109,10 @@ and whether the file exists:
     If the file exists:                                        `undecided'
     If the file does not exist:               default-buffer-file-coding-system
 
+Note that the CAR of arguments to `insert-file-contents' operation could
+be a cons cell of the form \(FILENAME . BUFFER\), where BUFFER is a buffer
+into which the file's contents were already read, but not yet decoded.
+
 If operation is `write-region', the coding system is chosen based upon
 the value of `buffer-file-coding-system' and `buffer-file-type'. If
 `buffer-file-coding-system' is non-nil, its value is used.  If it is
index 2ce4ca8cf38481f6148783d959c581d7f42d8a4a..19ed39a2b42bc7541a5410c3b437167386036643 100644 (file)
@@ -197,7 +197,7 @@ Use the command `%s' to change this variable." pretty-name mode))
 
          (let ((base-doc-string
                  (concat "Non-nil if %s is enabled.
-See the command `%s' for a description of this minor-mode."
+See the command `%s' for a description of this minor mode."
                          (if body "
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
index fd762e2968fd39ef1720e582ca5e905493f9d04b..85b150b6ae500634a54ab25993a7f9562916ac58 100644 (file)
@@ -157,7 +157,7 @@ With prefix ARG, turn ElDoc mode on if and only if ARG is positive."
 
 ;;;###autoload
 (defun turn-on-eldoc-mode ()
-  "Unequivocally turn on eldoc-mode (see variable documentation)."
+  "Unequivocally turn on ElDoc mode (see command `eldoc-mode')."
   (interactive)
   (eldoc-mode 1))
 
index 39134443d86b64b825e93ce524c2ec85c3f02909..54f88ba3ea5259c11c7b7a0aeee09921e778e06a 100644 (file)
@@ -725,8 +725,7 @@ CHAR
      matches the empty string, but only at point.
 
 `word-start', `bow'
-     matches the empty string, but only at the beginning or end of a
-     word.
+     matches the empty string, but only at the beginning of a word.
 
 `word-end', `eow'
      matches the empty string, but only at the end of a word.
@@ -740,6 +739,12 @@ CHAR
      matches the empty string, but not at the beginning or end of a
      word.
 
+`symbol-start'
+     matches the empty string, but only at the beginning of a symbol.
+
+`symbol-end'
+     matches the empty string, but only at the end of a symbol.
+
 `digit', `numeric', `num'
      matches 0 through 9.
 
index f6e00cbbea6cbe86ce9742e7a638c11117e4680f..8d65a267c4e77f47134e34b184bf8926f557a111 100644 (file)
@@ -584,9 +584,12 @@ GOLD is the ASCII 7-bit escape sequence <ESC>OP.")
   "Maps the SS3 function keys on the VT100 keyboard.
 SS3 is DEC's name for the sequence <ESC>O.")
 
-(defvar tpu-global-map nil "TPU-edt global keymap.")
-(defvar tpu-original-global-map global-map
-  "Original non-TPU global keymap.")
+(defvar tpu-global-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map "\e[" CSI-map)
+    (define-key map "\eO" SS3-map)
+    map)
+  "TPU-edt global keymap.")
 
 (and (not (boundp 'minibuffer-local-ns-map))
      (defvar minibuffer-local-ns-map (make-sparse-keymap)
@@ -2267,46 +2270,43 @@ Accepts a prefix argument for the number of tpu-pan-columns to scroll."
 ;;;
 ;;;  Functions to set, reset, and toggle the control key bindings
 ;;;
-(defun tpu-set-control-keys nil
+
+(defvar tpu-control-keys-map
+  (let ((map (make-sparse-keymap)))
+  (define-key map "\C-\\" 'quoted-insert)                ; ^\
+  (define-key map "\C-a" 'tpu-toggle-overwrite-mode)     ; ^A
+  (define-key map "\C-b" 'repeat-complex-command)        ; ^B
+  (define-key map "\C-e" 'tpu-current-end-of-line)       ; ^E
+  (define-key map "\C-h" 'tpu-next-beginning-of-line)    ; ^H (BS)
+  (define-key map "\C-j" 'tpu-delete-previous-word)      ; ^J (LF)
+  (define-key map "\C-k" 'tpu-define-macro-key)          ; ^K
+  (define-key map "\C-l" 'tpu-insert-formfeed)           ; ^L (FF)
+  (define-key map "\C-r" 'recenter)                      ; ^R
+  (define-key map "\C-u" 'tpu-delete-to-bol)             ; ^U
+  (define-key map "\C-v" 'tpu-quoted-insert)             ; ^V
+  (define-key map "\C-w" 'redraw-display)                ; ^W
+  (define-key map "\C-z" 'tpu-exit)                      ; ^Z
+  map))
+
+(defun tpu-set-control-keys ()
   "Set control keys to TPU style functions."
-  (define-key global-map "\C-\\" 'quoted-insert)                ; ^\
-  (define-key global-map "\C-a" 'tpu-toggle-overwrite-mode)     ; ^A
-  (define-key global-map "\C-b" 'repeat-complex-command)        ; ^B
-  (define-key global-map "\C-e" 'tpu-current-end-of-line)       ; ^E
-  (define-key global-map "\C-h" 'tpu-next-beginning-of-line)    ; ^H (BS)
-  (define-key global-map "\C-j" 'tpu-delete-previous-word)      ; ^J (LF)
-  (define-key global-map "\C-k" 'tpu-define-macro-key)          ; ^K
-  (define-key global-map "\C-l" 'tpu-insert-formfeed)           ; ^L (FF)
-  (define-key global-map "\C-r" 'recenter)                      ; ^R
-  (define-key global-map "\C-u" 'tpu-delete-to-bol)             ; ^U
-  (define-key global-map "\C-v" 'tpu-quoted-insert)             ; ^V
-  (define-key global-map "\C-w" 'redraw-display)                ; ^W
-  (define-key global-map "\C-z" 'tpu-exit)                      ; ^Z
-  (setq tpu-control-keys t))
+  (tpu-reset-control-keys 'tpu))
 
 (defun tpu-reset-control-keys (tpu-style)
   "Set control keys to TPU or Emacs style functions."
-  (let* ((tpu   (and tpu-style (not tpu-control-keys)))
-        (emacs (and (not tpu-style) tpu-control-keys))
-        (doit  (or tpu emacs)))
-    (cond (doit
-          (if emacs (setq tpu-global-map (copy-keymap global-map)))
-          (let ((map (if tpu tpu-global-map tpu-original-global-map)))
-
-            (define-key global-map "\C-\\" (lookup-key map "\C-\\"))   ; ^\
-            (define-key global-map "\C-a" (lookup-key map "\C-a"))     ; ^A
-            (define-key global-map "\C-b" (lookup-key map "\C-b"))     ; ^B
-            (define-key global-map "\C-e" (lookup-key map "\C-e"))     ; ^E
-            (define-key global-map "\C-h" (lookup-key map "\C-h"))     ; ^H (BS)
-            (define-key global-map "\C-j" (lookup-key map "\C-j"))     ; ^J (LF)
-            (define-key global-map "\C-k" (lookup-key map "\C-k"))     ; ^K
-            (define-key global-map "\C-l" (lookup-key map "\C-l"))     ; ^L (FF)
-            (define-key global-map "\C-r" (lookup-key map "\C-r"))     ; ^R
-            (define-key global-map "\C-u" (lookup-key map "\C-u"))     ; ^U
-            (define-key global-map "\C-v" (lookup-key map "\C-v"))     ; ^V
-            (define-key global-map "\C-w" (lookup-key map "\C-w"))     ; ^W
-            (define-key global-map "\C-z" (lookup-key map "\C-z"))     ; ^Z
-            (setq tpu-control-keys tpu-style))))))
+  (let ((parent (keymap-parent tpu-global-map)))
+    (if tpu-style
+        (if (eq parent tpu-control-keys-map)
+            nil                         ;All done already.
+          ;; Insert tpu-control-keys-map in the global map.
+          (set-keymap-parent tpu-control-keys-map parent)
+          (set-keymap-parent tpu-global-map tpu-control-keys-map))
+      (if (not (eq parent tpu-control-keys-map))
+          nil                         ;All done already.
+        ;; Remove tpu-control-keys-map from the global map.
+        (set-keymap-parent tpu-global-map (keymap-parent parent))
+        (set-keymap-parent tpu-control-keys-map nil)))
+    (setq tpu-control-keys tpu-style)))
 
 (defun tpu-toggle-control-keys nil
   "Toggles control key bindings between TPU-edt and Emacs."
@@ -2447,8 +2447,11 @@ If FILE is nil, try to load a default file.  The default file names are
 (defun tpu-edt-on ()
   "Turn on TPU/edt emulation."
   (interactive)
-  (and window-system (tpu-load-xkeys nil))
-  (tpu-arrow-history)
+  ;; First, activate tpu-global-map, while protecting the original keymap.
+  (set-keymap-parent tpu-global-map global-map)
+  (setq global-map tpu-global-map)
+  (use-global-map global-map)
+  ;; Then do the normal TPU setup.
   (transient-mark-mode t)
   (add-hook 'post-command-hook 'tpu-search-highlight)
   (tpu-set-mode-line t)
@@ -2457,10 +2460,14 @@ If FILE is nil, try to load a default file.  The default file names are
   (setq-default page-delimiter "\f")
   (setq-default truncate-lines t)
   (setq scroll-step 1)
-  (setq global-map (copy-keymap global-map))
   (tpu-set-control-keys)
-  (define-key global-map "\e[" CSI-map)
-  (define-key global-map "\eO" SS3-map)
+  (and window-system (tpu-load-xkeys nil))
+  (tpu-arrow-history)
+  ;; Then protect tpu-global-map from user modifications.
+  (let ((map (make-sparse-keymap)))
+    (set-keymap-parent map global-map)
+    (setq global-map map)
+    (use-global-map map))
   (setq tpu-edt-mode t))
 
 (defun tpu-edt-off ()
@@ -2472,8 +2479,13 @@ If FILE is nil, try to load a default file.  The default file names are
   (setq-default page-delimiter "^\f")
   (setq-default truncate-lines nil)
   (setq scroll-step 0)
-  (setq global-map tpu-original-global-map)
-  (use-global-map global-map)
+  ;; Remove tpu-global-map from the global map.
+  (let ((map global-map))
+    (while map
+      (let ((parent (keymap-parent map)))
+        (if (eq tpu-global-map parent)
+            (set-keymap-parent map (keymap-parent parent))
+          (setq map parent)))))
   (setq tpu-edt-mode nil))
 
 (provide 'tpu-edt)
index 1b6a94766d30c0c2aa09f951ee19fba414037a02..2dbc0c2791a69cc7ea3d19fd74a20429e30b46d5 100644 (file)
@@ -287,7 +287,7 @@ A value of t means do this only when the file is about to be saved.
 A value of `visit' means do this right after the file is visited.
 A value of `visit-save' means do it at both of those times.
 Any other non-nil value means ask user whether to add a newline, when saving.
-nil means don't add newlines.
+A value of nil means don't add newlines.
 
 Certain major modes set this locally to the value obtained
 from `mode-require-final-newline'."
@@ -309,10 +309,10 @@ A value of `visit' means do this right after the file is visited.
 A value of `visit-save' means do it at both of those times.
 Any other non-nil value means ask user whether to add a newline, when saving.
 
-nil means do not add newlines.  That is a risky choice in this variable
-since this value is used for modes for files that ought to have final newlines.
-So if you set this to nil, you must explicitly check and add
-a final newline, whenever you save a file that really needs one."
+A value of nil means do not add newlines.  That is a risky choice in this
+variable since this value is used for modes for files that ought to have
+final newlines.  So if you set this to nil, you must explicitly check and
+add a final newline, whenever you save a file that really needs one."
   :type '(choice (const :tag "When visiting" visit)
                 (const :tag "When saving" t)
                 (const :tag "When visiting or saving" visit-save)
@@ -459,7 +459,7 @@ not safe, Emacs queries you, once, whether to set them all.
 :safe means set the safe variables, and ignore the rest.
 :all means set all variables, whether safe or not.
  (Don't set it permanently to :all.)
-nil means always ignore the file local variables.
+A value of nil means always ignore the file local variables.
 
 Any other value means always query you once whether to set them all.
 \(When you say yes to certain values, they are remembered as safe, but
@@ -491,7 +491,7 @@ specified in a -*- line.")
   "Control processing of the \"variable\" `eval' in a file's local variables.
 The value can be t, nil or something else.
 A value of t means obey `eval' variables;
-nil means ignore them; anything else means query."
+A value of nil means ignore them; anything else means query."
   :type '(choice (const :tag "Obey" t)
                 (const :tag "Ignore" nil)
                 (other :tag "Query" other))
@@ -2120,8 +2120,20 @@ of the regular expression.  The mode is then determined as the mode
 associated with that interpreter in `interpreter-mode-alist'.")
 
 (defvar magic-mode-alist
-  `((image-type-auto-detected-p . image-mode)
-    ;; The < comes before the groups (but the first) to reduce backtracking.
+  `((image-type-auto-detected-p . image-mode))
+  "Alist of buffer beginnings vs. corresponding major mode functions.
+Each element looks like (REGEXP . FUNCTION) or (MATCH-FUNCTION . FUNCTION).
+After visiting a file, if REGEXP matches the text at the beginning of the
+buffer, or calling MATCH-FUNCTION returns non-nil, `normal-mode' will
+call FUNCTION rather than allowing `auto-mode-alist' to decide the buffer's
+major mode.
+
+If FUNCTION is nil, then it is not called.  (That is a way of saying
+\"allow `auto-mode-alist' to decide for these files.\")")
+(put 'magic-mode-alist 'risky-local-variable t)
+
+(defvar magic-fallback-mode-alist
+  `(;; The < comes before the groups (but the first) to reduce backtracking.
     ;; TODO: UTF-16 <?xml may be preceded by a BOM 0xff 0xfe or 0xfe 0xff.
     ;; We use [ \t\r\n] instead of `\\s ' to make regex overflow less likely.
     (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)")
@@ -2140,27 +2152,28 @@ associated with that interpreter in `interpreter-mode-alist'.")
      . sgml-mode)
     ("%!PS" . ps-mode)
     ("# xmcd " . conf-unix-mode))
-  "Alist of buffer beginnings vs. corresponding major mode functions.
+  "Like `magic-mode-alist' but has lower priority than `auto-mode-alist'.
 Each element looks like (REGEXP . FUNCTION) or (MATCH-FUNCTION . FUNCTION).
 After visiting a file, if REGEXP matches the text at the beginning of the
 buffer, or calling MATCH-FUNCTION returns non-nil, `normal-mode' will
-call FUNCTION rather than allowing `auto-mode-alist' to decide the buffer's
-major mode.
+call FUNCTION, provided that `magic-mode-alist' and `auto-mode-alist'
+have not specified a mode for this file.
 
-If FUNCTION is nil, then it is not called.  (That is a way of saying
-\"allow `auto-mode-alist' to decide for these files.\")")
-(put 'magic-mode-alist 'risky-local-variable t)
+If FUNCTION is nil, then it is not called.")
+(put 'magic-fallback-mode-alist 'risky-local-variable t)
 
 (defvar magic-mode-regexp-match-limit 4000
-  "Upper limit on `magic-mode-alist' regexp matches.")
+  "Upper limit on `magic-mode-alist' regexp matches.
+Also applies to `magic-fallback-mode-alist'.")
 
 (defun set-auto-mode (&optional keep-mode-if-same)
   "Select major mode appropriate for current buffer.
 
-This checks for a -*- mode tag in the buffer's text, checks the
-interpreter that runs this file against `interpreter-mode-alist',
-compares the buffer beginning against `magic-mode-alist', or
-compares the filename against the entries in `auto-mode-alist'.
+To find the right major mode, this function checks for a -*- mode tag,
+checks if it uses an interpreter listed in `interpreter-mode-alist',
+matches the buffer beginning against `magic-mode-alist',
+compares the filename against the entries in `auto-mode-alist',
+then matches the buffer beginning against `magic-fallback-mode-alist'.
 
 It does not check for the `mode:' local variable in the
 Local Variables section of the file; for that, use `hack-local-variables'.
@@ -2169,7 +2182,8 @@ If `enable-local-variables' is nil, this function does not check for a
 -*- mode tag.
 
 If the optional argument KEEP-MODE-IF-SAME is non-nil, then we
-only set the major mode, if that would change it."
+set the major mode only if that would change it.  In other words
+we don't actually set it to the same mode the buffer already has."
   ;; Look for -*-MODENAME-*- or -*- ... mode: MODENAME; ... -*-
   (let (end done mode modes)
     ;; Find a -*- mode tag
@@ -2207,10 +2221,10 @@ only set the major mode, if that would change it."
              (or (set-auto-mode-0 mode keep-mode-if-same)
                  ;; continuing would call minor modes again, toggling them off
                  (throw 'nop nil))))))
+    ;; If we didn't, look for an interpreter specified in the first line.
+    ;; As a special case, allow for things like "#!/bin/env perl", which
+    ;; finds the interpreter anywhere in $PATH.
     (unless done
-      ;; If we didn't, look for an interpreter specified in the first line.
-      ;; As a special case, allow for things like "#!/bin/env perl", which
-      ;; finds the interpreter anywhere in $PATH.
       (setq mode (save-excursion
                   (goto-char (point-min))
                   (if (looking-at auto-mode-interpreter-regexp)
@@ -2223,7 +2237,7 @@ only set the major mode, if that would change it."
       ;; If we found an interpreter mode to use, invoke it now.
       (if done
          (set-auto-mode-0 (cdr done) keep-mode-if-same)))
-    ;; If we didn't, match the buffer beginning against magic-mode-alist.
+    ;; Next try matching the buffer beginning against magic-mode-alist.
     (unless done
       (if (setq done (save-excursion
                       (goto-char (point-min))
@@ -2236,39 +2250,55 @@ only set the major mode, if that would change it."
                                          (if (functionp re)
                                              (funcall re)
                                            (looking-at re)))))))
-         (set-auto-mode-0 done keep-mode-if-same)
-       ;; Compare the filename against the entries in auto-mode-alist.
-       (if buffer-file-name
-           (let ((name buffer-file-name))
-             ;; Remove backup-suffixes from file name.
-             (setq name (file-name-sans-versions name))
-             (while name
-               ;; Find first matching alist entry.
-               (setq mode
-                     (if (memq system-type '(vax-vms windows-nt cygwin))
-                         ;; System is case-insensitive.
-                         (let ((case-fold-search t))
-                           (assoc-default name auto-mode-alist
-                                          'string-match))
-                       ;; System is case-sensitive.
-                       (or
-                        ;; First match case-sensitively.
-                        (let ((case-fold-search nil))
-                          (assoc-default name auto-mode-alist
-                                         'string-match))
-                        ;; Fallback to case-insensitive match.
-                        (and auto-mode-case-fold
-                             (let ((case-fold-search t))
-                               (assoc-default name auto-mode-alist
-                                              'string-match))))))
-               (if (and mode
-                        (consp mode)
-                        (cadr mode))
-                   (setq mode (car mode)
-                         name (substring name 0 (match-beginning 0)))
-                 (setq name))
-               (when mode
-                 (set-auto-mode-0 mode keep-mode-if-same)))))))))
+         (set-auto-mode-0 done keep-mode-if-same)))
+    ;; Next compare the filename against the entries in auto-mode-alist.
+    (unless done
+      (if buffer-file-name
+         (let ((name buffer-file-name))
+           ;; Remove backup-suffixes from file name.
+           (setq name (file-name-sans-versions name))
+           (while name
+             ;; Find first matching alist entry.
+             (setq mode
+                   (if (memq system-type '(vax-vms windows-nt cygwin))
+                       ;; System is case-insensitive.
+                       (let ((case-fold-search t))
+                         (assoc-default name auto-mode-alist
+                                        'string-match))
+                     ;; System is case-sensitive.
+                     (or
+                      ;; First match case-sensitively.
+                      (let ((case-fold-search nil))
+                        (assoc-default name auto-mode-alist
+                                       'string-match))
+                      ;; Fallback to case-insensitive match.
+                      (and auto-mode-case-fold
+                           (let ((case-fold-search t))
+                             (assoc-default name auto-mode-alist
+                                            'string-match))))))
+             (if (and mode
+                      (consp mode)
+                      (cadr mode))
+                 (setq mode (car mode)
+                       name (substring name 0 (match-beginning 0)))
+               (setq name))
+             (when mode
+               (set-auto-mode-0 mode keep-mode-if-same)
+               (setq done t))))))
+    ;; Next try matching the buffer beginning against magic-fallback-mode-alist.
+    (unless done
+      (if (setq done (save-excursion
+                      (goto-char (point-min))
+                      (save-restriction
+                        (narrow-to-region (point-min)
+                                          (min (point-max)
+                                               (+ (point-min) magic-mode-regexp-match-limit)))
+                        (assoc-default nil magic-fallback-mode-alist
+                                       (lambda (re dummy)
+                                         (if (functionp re)
+                                             (funcall re)
+                                           (looking-at re)))))))
+         (set-auto-mode-0 done keep-mode-if-same)))))
 
 ;; When `keep-mode-if-same' is set, we are working on behalf of
 ;; set-visited-file-name.  In that case, if the major mode specified is the
index 4b70a71bdb8b82ece1fb3720c7ec3a7354a723ca..47655129e29533fc1a3ec141218cacb0b06c888a 100644 (file)
@@ -257,7 +257,7 @@ Thus ARG can also contain additional grep options."
                  (delete-region (point) (- (point) 2)))
                ;; Find all the complete lines in the unprocessed
                ;; output and process it to add text properties.
-               (goto-char end)
+               (goto-char (point-max))
                (if (search-backward "\n" (process-mark proc) t)
                    (progn
                      (dired-insert-set-properties (process-mark proc)
index 56a382ff80a50d8e0b50e238aa6fc86f7c725e79..a12fe7be0449a277d17b2eaf775de455bfcbbb6d 100644 (file)
         "daemonic Gnus behaviour"
         (news))
     ("gnus-diary.el"
-        "Wrapper around the NNDiary Gnus backend"
+        "Wrapper around the NNDiary Gnus back end"
         (calendar mail news))
     ("gnus-dired.el"
         "utility functions where gnus and dired meet"
         "nndb access for Gnus"
         (news))
     ("nndiary.el"
-        "A diary backend for Gnus"
+        "A diary back end for Gnus"
         (calendar mail news))
     ("nndir.el"
         "single directory newsgroup access for Gnus"
     ("ps-mode.el"
         "PostScript mode for GNU Emacs"
         (postscript  languages))
+    ("python.el"
+        "silly walks for Python"
+        (languages))
     ("scheme.el"
         "Scheme (and DSSSL) editing mode"
         (languages  lisp))
index b02dc6c2f8e9af5876313b2960b9b65bb1bda32e..e3cba144f170c00fa31fcb7f01c1fe7942def042 100644 (file)
@@ -1,3 +1,16 @@
+2007-05-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * message.el (message-pop-to-buffer): Add switch-function argument.
+       (message-mail): Pass switch-function argument to it.
+       (message-narrow-to-headers-or-head): Ignore mail-header-separator in
+       the body.
+
+2007-05-09  Didier Verna  <didier@xemacs.org>
+
+       * gnus-diary.el, nndiary.el: Remove the description comment (nndiary is
+       now properly documented in the Gnus manual).  Fix the spelling of "Back
+       End".
+
 2007-04-19  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-art.el (gnus-mime-strip-charset-parameters): New function.
index be4c73a2b4f7c82d676c7423cf8491c62b070097..a7f7ee65ec3c6b01203d3b30bc634c8343cd0f80 100644 (file)
@@ -1,4 +1,4 @@
-;;; gnus-diary.el --- Wrapper around the NNDiary Gnus backend
+;;; gnus-diary.el --- Wrapper around the NNDiary Gnus back end
 
 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007  Free Software Foundation, Inc.
 ;; Description:
 ;; ===========
 
-;; Gnus-Diary is a wrapper around the NNDiary Gnus backend.  It is here to
-;; make your nndiary-user life easier in different ways.  So, you don't have
-;; to use it if you don't want to.  But, really, you should.
-
-;; Gnus-Diary offers the following features on top of the NNDiary backend:
-
-;;  - A nice summary line format:
-;;    Displaying diary messages in standard summary line format (usually
-;;    something like "<From Joe>: <Subject>") is pretty useless.  Most of the
-;;    time, you're the one who wrote the message, and you mostly want to see
-;;    the event's date.  Gnus-Diary offers you a nice summary line format
-;;    which will do this.  By default, a summary line will appear like this:
-;;
-;;     <Event Date>: <Subject> <Remaining time>
-;;
-;;   for example, here's how Joe's birthday is displayed in my
-;;   "nndiary:birhdays" summary buffer (the message is expirable, but will
-;;   never be deleted, as it specifies a regular event):
-;;
-;;   E  Sat, Sep 22 01, 12:00: Joe's birthday (in 6 months, 1 week)
-
-;;  - More article sorting functions:
-;;    Gnus-Diary adds a new sorting function called
-;;    `gnus-summary-sort-by-schedule'.  This function lets you organize your
-;;    diary summary buffers from the closest event to the farthest one.
-
-;;  - Automatic generation of diary group parameters:
-;;    When you create a new diary group, or visit one, Gnus-Diary checks your
-;;    group parameters, and if needed, sets the summary line format to the
-;;    diary-specific value, adds the diary-specific sorting functions, and
-;;    also adds the different `X-Diary-*' headers to the group's
-;;    posting-style.  It is then easier to send a diary message, because if
-;;    you use `C-u a' or `C-u m' on a diary group to prepare a message, these
-;;    headers will be inserted automatically (but not filled with proper
-;;    values yet).
-
-;;  - An interactive mail-to-diary convertion function:
-;;    The function `gnus-diary-check-message' ensures that the current message
-;;    contains all the required diary headers, and prompts you for values /
-;;    correction if needed.  This function is hooked in the nndiary backend so
-;;    that moving an article to an nndiary group will trigger it
-;;    automatically.  It is also bound to `C-c D c' in message-mode and
-;;    article-edit-mode in order to ease the process of converting a usual
-;;    mail to a diary one.  This function takes a prefix argument which will
-;;    force prompting of all diary headers, regardless of their
-;;    presence/validity.  That way, you can very easily reschedule a diary
-;;    message for instance.
-
-
-;; Usage:
-;; =====
-
-;; 0/ Don't use any `gnus-user-format-function-[d|D]'.  Gnus-Diary provides
-;;    both of these (sorry if you used them before).
-;; 1/ Add '(require 'gnus-diary) to your gnusrc file.
-;; 2/ Customize your gnus-diary options to suit your needs.
-
+;; gnus-diary is a utility toolkit used on top of the nndiary back end. It is
+;; now fully documented in the Gnus manual.
 
 
 ;; Bugs / Todo:
 (require 'gnus-art)
 
 (defgroup gnus-diary nil
-  "Utilities on top of the nndiary backend for Gnus."
+  "Utilities on top of the nndiary back end for Gnus."
   :version "22.1"
   :group 'gnus)
 
@@ -136,7 +81,7 @@ There are currently two built-in format functions:
   :group 'gnus-diary)
 
 (defconst gnus-diary-version nndiary-version
-  "Current Diary backend version.")
+  "Current Diary back end version.")
 
 
 ;; Compatibility functions ==================================================
@@ -334,7 +279,7 @@ Optional prefix (or REVERSE argument) means sort in reverse order."
     ))
 
 ;; Called when a group is subscribed. This is needed because groups created
-;; because of mail splitting are *not* created with the backend function.
+;; because of mail splitting are *not* created with the back end function.
 ;; Thus, `nndiary-request-create-group-hooks' is inoperative.
 (defun gnus-diary-maybe-update-group-parameters (group)
   (when (eq (car (gnus-find-method-for-group group)) 'nndiary)
@@ -452,7 +397,7 @@ If ARG (or prefix) is non-nil, force prompting for all fields."
 ;; The end ==================================================================
 
 (defun gnus-diary-version ()
-  "Current Diary backend version."
+  "Current Diary back end version."
   (interactive)
   (message "NNDiary version %s" nndiary-version))
 
index baf98611308bef9168745b7092426191fec521e1..eef854f4fb7bd86366f99ceaaf9f21ddf46ad738 100644 (file)
@@ -2225,14 +2225,12 @@ Point is left at the beginning of the narrowed-to region."
   (widen)
   (narrow-to-region
    (goto-char (point-min))
-   (cond
-    ((re-search-forward
-      (concat "^" (regexp-quote mail-header-separator) "\n") nil t)
-     (match-beginning 0))
-    ((search-forward "\n\n" nil t)
-     (1- (point)))
-    (t
-     (point-max))))
+   (if (re-search-forward (concat "\\(\n\\)\n\\|^\\("
+                                 (regexp-quote mail-header-separator)
+                                 "\n\\)")
+                         nil t)
+       (or (match-end 1) (match-beginning 2))
+     (point-max)))
   (goto-char (point-min)))
 
 (defun message-news-p ()
@@ -5578,7 +5576,7 @@ between beginning of field and beginning of line."
             'car-less-than-car)))
          new)))))
 
-(defun message-pop-to-buffer (name)
+(defun message-pop-to-buffer (name &optional switch-function)
   "Pop to buffer NAME, and warn if it already exists and is modified."
   (let ((buffer (get-buffer name)))
     (if (and buffer
@@ -5589,14 +5587,16 @@ between beginning of field and beginning of line."
              (progn
                (gnus-select-frame-set-input-focus (window-frame window))
                (select-window window))
-           (set-buffer (pop-to-buffer buffer)))
+           (funcall (or switch-function 'pop-to-buffer) buffer)
+           (set-buffer buffer))
          (when (and (buffer-modified-p)
                     (not (prog1
                              (y-or-n-p
                               "Message already being composed; erase? ")
                            (message nil))))
            (error "Message being composed")))
-      (set-buffer (pop-to-buffer name)))
+      (funcall (or switch-function 'pop-to-buffer) name)
+      (set-buffer name))
     (erase-buffer)
     (message-mode)))
 
@@ -5833,15 +5833,15 @@ is a function used to switch to and display the mail buffer."
   (interactive)
   (let ((message-this-is-mail t) replybuffer)
     (unless (message-mail-user-agent)
-      (funcall
-       (or switch-function 'message-pop-to-buffer)
+      (message-pop-to-buffer
        ;; Search for the existing message buffer if `continue' is non-nil.
        (let ((message-generate-new-buffers
              (when (or (not continue)
                        (eq message-generate-new-buffers 'standard)
                        (functionp message-generate-new-buffers))
                message-generate-new-buffers)))
-        (message-buffer-name "mail" to))))
+        (message-buffer-name "mail" to))
+       switch-function))
     ;; FIXME: message-mail should do something if YANK-ACTION is not
     ;; insert-buffer.
     (and (consp yank-action) (eq (car yank-action) 'insert-buffer)
index 249a4fdb1bad99f431263f4065074e357f76c329..483c2ee10702429612be105aa72180a71d3fcc7b 100644 (file)
@@ -1,4 +1,4 @@
-;;; nndiary.el --- A diary backend for Gnus
+;;; nndiary.el --- A diary back end for Gnus
 
 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007 Free Software Foundation, Inc.
 ;; Description:
 ;; ===========
 
-;; This package implements NNDiary, a diary backend for Gnus.  NNDiary is a
-;; mail backend, pretty similar to nnml in its functionnning (it has all the
-;; features of nnml, actually), but in which messages are treated as event
-;; reminders.
-
-;; Here is a typical scenario:
-;; - You've got a date with Andy Mc Dowell or Bruce Willis (select according
-;;   to your sexual preference) in one month.  You don't want to forget it.
-;; - Send a (special) diary message to yourself (see below).
-;; - Forget all about it and keep on getting and reading new mail, as usual.
-;; - From time to time, as you type `g' in the group buffer and as the date
-;;   is getting closer, the message will pop up again, just like if it were
-;;   new and unread.
-;; - Read your "new" messages, this one included, and start dreaming of the
-;;   night you're gonna have.
-;; - Once the date is over (you actually fell asleep just after dinner), the
-;;   message will be automatically deleted if it is marked as expirable.
-
-;; Some more notes on the diary backend:
-;; - NNDiary is a *real* mail backend.  You *really* send real diary
-;;   messsages.  This means for instance that you can give appointements to
-;;   anybody (provided they use Gnus and NNDiary) by sending the diary message
-;;   to them as well.
-;; - However, since NNDiary also has a 'request-post method, you can also
-;;  `C-u a' instead of `C-u m' on a diary group and the message won't actually
-;;   be sent; just stored in the group.
-;; - The events you want to remember need not be punctual.  You can set up
-;;   reminders for regular dates (like once each week, each monday at 13:30
-;;   and so on).  Diary messages of this kind will never be deleted (unless
-;;   you do it explicitely).  But that, you guessed.
-
-
-;; Usage:
-;; =====
-
-;;  1/ NNDiary has two modes of operation: traditional (the default) and
-;;     autonomous.
-;;     a/ In traditional mode, NNDiary does not get new mail by itself.  You
-;;        have to move mails from your primary mail backend to nndiary
-;;        groups.
-;;     b/ In autonomous mode, NNDiary retrieves its own mail and handles it
-;;        independantly of your primary mail backend.  To use NNDiary in
-;;        autonomous mode, you have several things to do:
-;;           i/ Put (setq nndiary-get-new-mail t) in your gnusrc file.
-;;          ii/ Diary messages contain several `X-Diary-*' special headers.
-;;              You *must* arrange that these messages be split in a private
-;;              folder *before* Gnus treat them.  You need this because Gnus
-;;              is not able yet to manage multiple backends for mail
-;;              retrieval.  Getting them from a separate source will
-;;              compensate this misfeature to some extent, as we will see.
-;;              As an example, here's my procmailrc entry to store diary files
-;;              in ~/.nndiary (the default nndiary mail source file):
-;;
-;;              :0 HD :
-;;              * ^X-Diary
-;;              .nndiary
-;;         iii/ Customize the variables `nndiary-mail-sources' and
-;;              `nndiary-split-methods'.  These are replacements for the usual
-;;              mail sources and split methods which, and will be used in
-;;              autonomous mode.  `nndiary-mail-sources' defaults to
-;;              '(file :path "~/.nndiary").
-;;  2/ Install nndiary somewhere Emacs / Gnus can find it.  Normally, you
-;;     *don't* have to '(require 'nndiary) anywhere.  Gnus will do so when
-;;     appropriate as long as nndiary is somewhere in the load path.
-;;  3/ Now, customize the rest of nndiary.  In particular, you should
-;;     customize `nndiary-reminders', the list of times when you want to be
-;;     reminded of your appointements (e.g. 3 weeks before, then 2 days
-;;     before, then 1 hour before and that's it).
-;;  4/ You *must* use the group timestamp feature of Gnus.  This adds a
-;;     timestamp to each groups' parameters (please refer to the Gnus
-;;     documentation ("Group Timestamp" info node) to see how it's done.
-;;  5/ Once you have done this, you may add a permanent nndiary virtual server
-;;     (something like '(nndiary "")) to your `gnus-secondary-select-methods'.
-;;     Yes, this server will be able to retrieve mails and split them when you
-;;     type `g' in the group buffer, just as if it were your only mail backend.
-;;     This is the benefit of using a private folder.
-;;  6/ Hopefully, almost everything (see the TODO section below) will work as
-;;     expected when you restart Gnus: in the group buffer, `g' and `M-g' will
-;;     also get your new diary mails, `F' will find your new diary groups etc.
-
-
-;; How to send diary messages:
-;; ==========================
-
-;; There are 7 special headers in diary messages. These headers are of the
-;; form `X-Diary-<something>', the <something> being one of `Minute', `Hour',
-;; `Dom', `Month', `Year', `Time-Zone' and `Dow'. `Dom' means "Day of Month",
-;; and `dow' means "Day of Week".  These headers actually behave like crontab
-;; specifications and define the event date(s).
-
-;; For all headers but the `Time-Zone' one, a header value is either a
-;; star (meaning all possible values), or a list of fields (separated by a
-;; comma).  A field is either an integer, or a range.  A range is two integers
-;; separated by a dash.  Possible integer values are 0-59 for `Minute', 0-23
-;; for `Hour', 1-31 for `Dom', `1-12' for Month, above 1971 for `Year' and 0-6
-;; for `Dow' (0 = sunday).  As a special case, a star in either `Dom' or `Dow'
-;; doesn't mean "all possible values", but "use only the other field".  Note
-;; that if both are star'ed, the use of either one gives the same result :-),
-
-;; The `Time-Zone' header is special in that it can have only one value (you
-;; bet ;-).
-;; A star doesn't mean "all possible values" (because it has no sense), but
-;; "the current local time zone".
-
-;; As an example, here's how you would say "Each Monday and each 1st of month,
-;; at 12:00, 20:00, 21:00, 22:00, 23:00 and 24:00, from 1999 to 2010" (I let
-;; you find what to do then):
-;;
-;;   X-Diary-Minute: 0
-;;   X-Diary-Hour: 12, 20-24
-;;   X-Diary-Dom: 1
-;;   X-Diary-Month: *
-;;   X-Diary-Year: 1999-2010
-;;   X-Diary-Dow: 1
-;;   X-Diary-Time-Zone: *
-;;
-;;
-;; Sending a diary message is not different from sending any other kind of
-;; mail, except that such messages are identified by the presence of these
-;; special headers.
-
+;; nndiary is a mail back end designed to handle mails as diary event
+;; reminders. It is now fully documented in the Gnus manual.
 
 
 ;; Bugs / Todo:
 
 ;; * Respooling doesn't work because contrary to the request-scan function,
 ;;   Gnus won't allow me to override the split methods when calling the
-;;   respooling backend functions.
+;;   respooling back end functions.
 ;; * There's a bug in the time zone mechanism with variable TZ locations.
 ;; * We could allow a keyword like `ask' in X-Diary-* headers, that would mean
 ;;   "ask for value upon reception of the message".
 ;; * We could add an optional header X-Diary-Reminders to specify a special
 ;;   reminders value for this message. Suggested by Jody Klymak.
 ;; * We should check messages validity in other circumstances than just
-;;   moving an article from sonwhere else (request-accept). For instance, when
-;;   editing / saving and so on.
+;;   moving an article from somewhere else (request-accept). For instance,
+;;   when editing / saving and so on.
 
 
 ;; Remarks:
 ;; =======
 
-;; * nnoo.
-;;   NNDiary is very similar to nnml.  This makes the idea of using nnoo (to
-;;   derive nndiary from nnml) natural.  However, my experience with nnoo is
-;;   that for reasonably complex backends like this one, noo is a burden
-;;   rather than an help.  It's tricky to use, not everything can be
-;;   inherited, what can be inherited and when is not very clear, and you've
-;;   got to be very careful because a little mistake can fuck up your your
-;;   other backends, especially because their variables will be use instead of
-;;   your real ones.  Finally, I found it easier to just clone the needed
-;;   parts of nnml, and tracking nnml updates is not a big deal.
+;; * nnoo. NNDiary is very similar to nnml. This makes the idea of using nnoo
+;;   (to derive nndiary from nnml) natural. However, my experience with nnoo
+;;   is that for reasonably complex back ends like this one, noo is a burden
+;;   rather than an help. It's tricky to use, not everything can be inherited,
+;;   what can be inherited and when is not very clear, and you've got to be
+;;   very careful because a little mistake can fuck up your other back ends,
+;;   especially because their variables will be use instead of your real ones.
+;;   Finally, I found it easier to just clone the needed parts of nnml, and
+;;   tracking nnml updates is not a big deal.
 
 ;;   IMHO, nnoo is actually badly designed.  A much simpler, and yet more
 ;;   powerful one would be to make *real* functions and variables for a new
-;;   backend based on another. Lisp is a reflexive language so that's a very
+;;   back end based on another. Lisp is a reflexive language so that's a very
 ;;   easy thing to do: inspect the function's form, replace occurences of
 ;;   <nnfrom> (even in strings) with <nnto>, and you're done.
 
 ;; * nndiary-get-new-mail, nndiary-mail-source and nndiary-split-methods:
 ;;   NNDiary has some experimental parts, in the sense Gnus normally uses only
-;;   one mail backends for mail retreival and splitting.  This backend is also
-;;   an attempt to make it behave differently.  For Gnus developpers: as you
-;;   can see if you snarf into the code, that was not a very difficult thing
-;;   to do.  Something should be done about the respooling breakage though.
+;;   one mail back ends for mail retreival and splitting. This back end is
+;;   also an attempt to make it behave differently. For Gnus developpers: as
+;;   you can see if you snarf into the code, that was not a very difficult
+;;   thing to do. Something should be done about the respooling breakage
+;;   though.
 
 
 ;;; Code:
       (apply #'error args))))
 
 
-;; Backend behavior customization ===========================================
+;; Back End behavior customization ===========================================
 
 (defgroup nndiary nil
-  "The Gnus Diary backend."
+  "The Gnus Diary back end."
   :version "22.1"
   :group 'gnus-diary)
 
@@ -326,27 +207,27 @@ The hooks will be called with the article in the current buffer."
   :type 'boolean)
 
 
-;; Backend declaration ======================================================
+;; Back End declaration ======================================================
 
 ;; Well, most of this is nnml clonage.
 
 (nnoo-declare nndiary)
 
 (defvoo nndiary-directory (nnheader-concat gnus-directory "diary/")
-  "Spool directory for the nndiary backend.")
+  "Spool directory for the nndiary back end.")
 
 (defvoo nndiary-active-file
     (expand-file-name "active" nndiary-directory)
-  "Active file for the nndiary backend.")
+  "Active file for the nndiary back end.")
 
 (defvoo nndiary-newsgroups-file
     (expand-file-name "newsgroups" nndiary-directory)
-  "Newsgroups description file for the nndiary backend.")
+  "Newsgroups description file for the nndiary back end.")
 
 (defvoo nndiary-get-new-mail nil
   "Whether nndiary gets new mail and split it.
-Contrary to traditional mail backends, this variable can be set to t
-even if your primary mail backend also retreives mail. In such a case,
+Contrary to traditional mail back ends, this variable can be set to t
+even if your primary mail back end also retreives mail. In such a case,
 NDiary uses its own mail-sources and split-methods.")
 
 (defvoo nndiary-nov-is-evil nil
@@ -367,10 +248,10 @@ all.  This may very well take some time.")
 \f
 
 (defconst nndiary-version "0.2-b14"
-  "Current Diary backend version.")
+  "Current Diary back end version.")
 
 (defun nndiary-version ()
-  "Current Diary backend version."
+  "Current Diary back end version."
   (interactive)
   (message "NNDiary version %s" nndiary-version))
 
@@ -631,7 +512,7 @@ all.  This may very well take some time.")
 
 (deffoo nndiary-request-scan (&optional group server)
   ;; Use our own mail sources and split methods while Gnus doesn't let us have
-  ;; multiple backends for retrieving mail.
+  ;; multiple back ends for retrieving mail.
   (let ((mail-sources nndiary-mail-sources)
        (nnmail-split-methods nndiary-split-methods))
     (setq nndiary-article-file-alist nil)
index d97d0407ab8b9760d0f7d5b71e6742af8f6d87db..62f92409bde8693aedd45991e49944494c1e2610 100644 (file)
@@ -124,7 +124,7 @@ calls."
   :type '(repeat symbol)
   :group 'hi-lock)
 
-(defcustom hi-lock-file-patterns-policy 'never
+(defcustom hi-lock-file-patterns-policy 'ask
   "Specify when hi-lock should use patterns found in file.
 If `ask', prompt when patterns found in buffer; if bound to a function,
 use patterns when function returns t (function is called with patterns
index ed330410d883e9c904c990a13ffc92ff9d99603d..867c50df013e4ce7d9ea8b50887d5660104c8447 100644 (file)
@@ -228,7 +228,7 @@ Used together with `image-dired-cmd-create-thumbnail-options'."
   :group 'image-dired)
 
 (defcustom image-dired-cmd-create-thumbnail-options
-  "%p -size %wx%h \"%f\" -resize %wx%h +profile \"*\" jpeg:\"%t\""
+  "%p -size %wx%h \"%f\" -resize %wx%h -strip jpeg:\"%t\""
   "Format of command used to create thumbnail image.
 Available options are %p which is replaced by
 `image-dired-cmd-create-thumbnail-program', %w which is replaced by
@@ -246,7 +246,7 @@ Used together with `image-dired-cmd-create-temp-image-options'."
   :group 'image-dired)
 
 (defcustom image-dired-cmd-create-temp-image-options
-  "%p -size %wx%h \"%f\" -resize %wx%h +profile \"*\" jpeg:\"%t\""
+  "%p -size %wx%h \"%f\" -resize %wx%h -strip jpeg:\"%t\""
   "Format of command used to create temporary image for display window.
 Available options are %p which is replaced by
 `image-dired-cmd-create-temp-image-program', %w and %h which is replaced by
@@ -1774,7 +1774,8 @@ should feel snappy enough.
 If optional argument ORIGINAL-SIZE is non-nil, display image in its
 original size."
   (let ((new-file (expand-file-name image-dired-temp-image-file))
-        width height command ret)
+        width height command ret
+        (image-type 'jpeg))
     (setq file (expand-file-name file))
     (if (not original-size)
         (progn
@@ -1793,12 +1794,13 @@ original size."
                                  shell-command-switch command))
           (if (not (= 0 ret))
               (error "Could not resize image")))
+      (setq image-type (image-type-from-file-name file))
       (copy-file file new-file t))
     (with-current-buffer (image-dired-create-display-image-buffer)
       (let ((inhibit-read-only t))
         (erase-buffer)
         (clear-image-cache)
-        (image-dired-insert-image image-dired-temp-image-file 'jpeg 0 0)
+        (image-dired-insert-image image-dired-temp-image-file image-type 0 0)
         (goto-char (point-min))
         (image-dired-update-property 'original-file-name file)))))
 
index 4bf83c265b0116dca7a2b1e3f970b1f2156b2b9a..3b709abca370a36c44dd24105f7c41f597a8cd0b 100644 (file)
@@ -288,7 +288,7 @@ It doesn't contain directory names or file name extensions added by Info.")
 
 (defvar Info-current-subfile nil
   "Info subfile that is actually in the *info* buffer now.
-nil if current Info file is not split into subfiles.")
+It is nil if current Info file is not split into subfiles.")
 
 (defvar Info-current-node nil
   "Name of node that Info is now looking at, or nil.")
@@ -4074,7 +4074,7 @@ the variable `Info-file-list-for-emacs'."
       ;; Fontify http and ftp references
       (goto-char (point-min))
       (when not-fontified-p
-        (while (re-search-forward "[hf]t?tp://[^ \t\n\"`({<>})']+" nil t)
+        (while (re-search-forward "\\(https?\\|ftp\\)://[^ \t\n\"`({<>})']+" nil t)
           (add-text-properties (match-beginning 0) (match-end 0)
                                '(font-lock-face info-xref
                                                 mouse-face highlight
index eb94794145fa82a866644f528679b99d24bfc717..3448da812a2999dfb6fd4f0f5347962936fb7bd6 100644 (file)
@@ -823,13 +823,13 @@ Optional arg BUFFER is ignored (for use in `format-alist')."
  (iso-translate-conventions from to iso-sgml2iso-trans-tab))
 
 ;;;###autoload
-(defun iso-cvt-read-only ()
+(defun iso-cvt-read-only (&rest ignore)
   "Warn that format is read-only."
   (interactive)
   (error "This format is read-only; specify another format for writing"))
 
 ;;;###autoload
-(defun iso-cvt-write-only ()
+(defun iso-cvt-write-only (&rest ignore)
   "Warn that format is write-only."
   (interactive)
   (error "This format is write-only"))
index 1de9b40105cf2dcb2123d2b31c46b315be176ae1..bee0bdcbca38504085769c05bb325295c15f8330 100644 (file)
@@ -1586,6 +1586,7 @@ text, and convert it in the temporary buffer.  Otherwise, convert in-place."
     ("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion)
     ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion)
     ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion)
+    ("\\.pdf\\'" . no-conversion)
     ("/#[^/]+#\\'" . emacs-mule))
   "Alist of filename patterns vs corresponding coding systems.
 Each element looks like (REGEXP . CODING-SYSTEM).
index 61ecc13636b5df450795b87e139b1afa8d50b1ea..25df6135e3e554f07a17d873465d4f534b1520d6 100644 (file)
@@ -306,7 +306,7 @@ Fix any old-style date entries in the current log file to default format.
 \f
 ;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice
 ;;;;;;  ad-enable-advice ad-default-compilation-action ad-redefinition-action)
-;;;;;;  "advice" "emacs-lisp/advice.el" (17842 54152))
+;;;;;;  "advice" "emacs-lisp/advice.el" (17992 30878))
 ;;; Generated autoloads from emacs-lisp/advice.el
 
 (defvar ad-redefinition-action (quote warn) "\
@@ -1461,7 +1461,7 @@ Special commands:
 
 (defvar autoarg-mode nil "\
 Non-nil if Autoarg mode is enabled.
-See the command `autoarg-mode' for a description of this minor-mode.")
+See the command `autoarg-mode' for a description of this minor mode.")
 
 (custom-autoload (quote autoarg-mode) "autoarg" nil)
 
@@ -1489,7 +1489,7 @@ then invokes the normal binding of \\[autoarg-terminate].
 
 (defvar autoarg-kp-mode nil "\
 Non-nil if Autoarg-Kp mode is enabled.
-See the command `autoarg-kp-mode' for a description of this minor-mode.
+See the command `autoarg-kp-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `autoarg-kp-mode'.")
@@ -1539,7 +1539,7 @@ or if CONDITION had no actions, after all other CONDITIONs.
 
 (defvar auto-insert-mode nil "\
 Non-nil if Auto-Insert mode is enabled.
-See the command `auto-insert-mode' for a description of this minor-mode.
+See the command `auto-insert-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `auto-insert-mode'.")
@@ -1645,7 +1645,7 @@ This function is designed to be added to hooks, for example:
 
 (defvar global-auto-revert-mode nil "\
 Non-nil if Global-Auto-Revert mode is enabled.
-See the command `global-auto-revert-mode' for a description of this minor-mode.
+See the command `global-auto-revert-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-auto-revert-mode'.")
@@ -1743,7 +1743,7 @@ The text being displayed in the echo area is controlled by the variables
 
 (defvar display-battery-mode nil "\
 Non-nil if Display-Battery mode is enabled.
-See the command `display-battery-mode' for a description of this minor-mode.
+See the command `display-battery-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `display-battery-mode'.")
@@ -2582,8 +2582,8 @@ name of buffer configuration.
 ;;;***
 \f
 ;;;### (autoloads (insert-text-button make-text-button insert-button
-;;;;;;  make-button define-button-type) "button" "button.el" (17964
-;;;;;;  48350))
+;;;;;;  make-button define-button-type) "button" "button.el" (17992
+;;;;;;  30877))
 ;;; Generated autoloads from button.el
 
 (defvar button-map (let ((map (make-sparse-keymap))) (define-key map "\r" (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\
@@ -3519,7 +3519,7 @@ Return the syntactic context of the current line.
 \f
 ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
 ;;;;;;  c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
-;;;;;;  (17962 52849))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from progmodes/cc-mode.el
 
 (autoload (quote c-initialize-cc-mode) "cc-mode" "\
@@ -4595,7 +4595,7 @@ on third call it again advances points to the next difference and so on.
 ;;;;;;  compilation-shell-minor-mode compilation-mode compilation-start
 ;;;;;;  compile compilation-disable-input compile-command compilation-search-path
 ;;;;;;  compilation-ask-about-save compilation-window-height compilation-mode-hook)
-;;;;;;  "compile" "progmodes/compile.el" (17952 11093))
+;;;;;;  "compile" "progmodes/compile.el" (18006 55797))
 ;;; Generated autoloads from progmodes/compile.el
 
 (defvar compilation-mode-hook nil "\
@@ -4763,7 +4763,7 @@ This is the value of `next-error-function' in Compilation buffers.
 
 (defvar partial-completion-mode nil "\
 Non-nil if Partial-Completion mode is enabled.
-See the command `partial-completion-mode' for a description of this minor-mode.
+See the command `partial-completion-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `partial-completion-mode'.")
@@ -4805,7 +4805,7 @@ second TAB brings up the `*Completions*' buffer.
 
 (defvar dynamic-completion-mode nil "\
 Non-nil if Dynamic-Completion mode is enabled.
-See the command `dynamic-completion-mode' for a description of this minor-mode.
+See the command `dynamic-completion-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `dynamic-completion-mode'.")
@@ -5535,7 +5535,7 @@ INHERIT-INPUT-METHOD.
 
 (defvar cua-mode nil "\
 Non-nil if Cua mode is enabled.
-See the command `cua-mode' for a description of this minor-mode.
+See the command `cua-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `cua-mode'.")
@@ -6012,7 +6012,7 @@ This function is designed to be added to hooks, for example:
 
 (defvar global-cwarn-mode nil "\
 Non-nil if Global-Cwarn mode is enabled.
-See the command `global-cwarn-mode' for a description of this minor-mode.
+See the command `global-cwarn-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-cwarn-mode'.")
@@ -6060,7 +6060,7 @@ If the argument is nil, we return the display table to its standard state.
 ;;;***
 \f
 ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
-;;;;;;  (17842 58280))
+;;;;;;  (18006 55794))
 ;;; Generated autoloads from dabbrev.el
  (define-key esc-map "/" 'dabbrev-expand)
  (define-key esc-map [?\C-/] 'dabbrev-completion)
@@ -6389,7 +6389,7 @@ no args, if that value is non-nil.
 
 (defvar delete-selection-mode nil "\
 Non-nil if Delete-Selection mode is enabled.
-See the command `delete-selection-mode' for a description of this minor-mode.
+See the command `delete-selection-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `delete-selection-mode'.")
@@ -6507,7 +6507,7 @@ as well as widgets, buttons, overlays, and text properties.
 
 (defvar desktop-save-mode nil "\
 Non-nil if Desktop-Save mode is enabled.
-See the command `desktop-save-mode' for a description of this minor-mode.")
+See the command `desktop-save-mode' for a description of this minor mode.")
 
 (custom-autoload (quote desktop-save-mode) "desktop" nil)
 
@@ -6782,7 +6782,7 @@ Major mode for editing the diary file.
 ;;;***
 \f
 ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff"
-;;;;;;  "diff.el" (17842 58280))
+;;;;;;  "diff.el" (17992 30877))
 ;;; Generated autoloads from diff.el
 
 (defvar diff-switches "-c" "\
@@ -6816,7 +6816,7 @@ With prefix arg, prompt for diff switches.
 ;;;***
 \f
 ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el"
-;;;;;;  (17942 63381))
+;;;;;;  (17992 30877))
 ;;; Generated autoloads from diff-mode.el
 
 (autoload (quote diff-mode) "diff-mode" "\
@@ -6848,7 +6848,7 @@ Minor mode for viewing/editing context diffs.
 ;;;;;;  dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink
 ;;;;;;  dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename
 ;;;;;;  dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches)
-;;;;;;  "dired" "dired.el" (17963 25980))
+;;;;;;  "dired" "dired.el" (18015 32019))
 ;;; Generated autoloads from dired.el
 
 (defvar dired-listing-switches "-al" "\
@@ -7468,7 +7468,7 @@ true then the type of the file linked to by FILE is printed instead.
 ;;;***
 \f
 ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el"
-;;;;;;  (17962 27565))
+;;;;;;  (17992 30877))
 ;;; Generated autoloads from dired-x.el
 
 (autoload (quote dired-jump) "dired-x" "\
@@ -7768,7 +7768,7 @@ Play sounds in message buffers.
 \f
 ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
 ;;;;;;  define-globalized-minor-mode define-minor-mode) "easy-mmode"
-;;;;;;  "emacs-lisp/easy-mmode.el" (17964 48351))
+;;;;;;  "emacs-lisp/easy-mmode.el" (17992 30878))
 ;;; Generated autoloads from emacs-lisp/easy-mmode.el
 
 (defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode))
@@ -8939,7 +8939,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
-;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (17842 54152))
+;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (17992 30878))
 ;;; Generated autoloads from emacs-lisp/eldoc.el
 
 (defvar eldoc-minor-mode-string " ElDoc" "\
@@ -8960,7 +8960,7 @@ With prefix ARG, turn ElDoc mode on if and only if ARG is positive.
 \(fn &optional ARG)" t nil)
 
 (autoload (quote turn-on-eldoc-mode) "eldoc" "\
-Unequivocally turn on eldoc-mode (see variable documentation).
+Unequivocally turn on ElDoc mode (see command `eldoc-mode').
 
 \(fn)" t nil)
 
@@ -9138,7 +9138,7 @@ Not documented
 
 (defvar encoded-kbd-mode nil "\
 Non-nil if Encoded-Kbd mode is enabled.
-See the command `encoded-kbd-mode' for a description of this minor-mode.
+See the command `encoded-kbd-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `encoded-kbd-mode'.")
@@ -9628,7 +9628,7 @@ This will add a speedbar major display mode.
 
 (defvar erc-track-minor-mode nil "\
 Non-nil if Erc-Track minor mode is enabled.
-See the command `erc-track-minor-mode' for a description of this minor-mode.")
+See the command `erc-track-minor-mode' for a description of this minor mode.")
 
 (custom-autoload (quote erc-track-minor-mode) "erc-track" nil)
 
@@ -10905,7 +10905,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
 
 ;;;***
 \f
-;;;### (autoloads nil "fill" "textmodes/fill.el" (17961 33560))
+;;;### (autoloads nil "fill" "textmodes/fill.el" (18007 39658))
 ;;; Generated autoloads from textmodes/fill.el
 (put 'colon-double-space 'safe-local-variable 'booleanp)
 
@@ -10913,7 +10913,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
 \f
 ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options
 ;;;;;;  find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el"
-;;;;;;  (17842 58279))
+;;;;;;  (17992 30877))
 ;;; Generated autoloads from find-dired.el
 
 (defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\
@@ -11327,7 +11327,7 @@ Turn flymake mode off.
 \f
 ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
 ;;;;;;  turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
-;;;;;;  "flyspell" "textmodes/flyspell.el" (17962 52849))
+;;;;;;  "flyspell" "textmodes/flyspell.el" (18006 55797))
 ;;; Generated autoloads from textmodes/flyspell.el
 
 (autoload (quote flyspell-prog-mode) "flyspell" "\
@@ -12110,7 +12110,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d)
-;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (17842 54741))
+;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (17992 30878))
 ;;; Generated autoloads from gnus/gnus-diary.el
 
 (autoload (quote gnus-user-format-function-d) "gnus-diary" "\
@@ -12810,7 +12810,7 @@ the form \"WINDOW-ID PIXMAP-ID\".  Value is non-nil if successful.
 ;;;***
 \f
 ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb)
-;;;;;;  "gud" "progmodes/gud.el" (17950 21759))
+;;;;;;  "gud" "progmodes/gud.el" (17992 30878))
 ;;; Generated autoloads from progmodes/gud.el
 
 (autoload (quote gdb) "gud" "\
@@ -13341,7 +13341,7 @@ This discards the buffer's undo information.
 ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
 ;;;;;;  hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
 ;;;;;;  global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
-;;;;;;  (17964 48351))
+;;;;;;  (17992 30877))
 ;;; Generated autoloads from hi-lock.el
 
 (autoload (quote hi-lock-mode) "hi-lock" "\
@@ -13397,7 +13397,7 @@ is found.  A mode is excluded if it's in the list `hi-lock-exclude-modes'.
 
 (defvar global-hi-lock-mode nil "\
 Non-nil if Global-Hi-Lock mode is enabled.
-See the command `global-hi-lock-mode' for a description of this minor-mode.
+See the command `global-hi-lock-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-hi-lock-mode'.")
@@ -13814,7 +13814,7 @@ addition to `hl-line-highlight' on `post-command-hook'.
 
 (defvar global-hl-line-mode nil "\
 Non-nil if Global-Hl-Line mode is enabled.
-See the command `global-hl-line-mode' for a description of this minor-mode.
+See the command `global-hl-line-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-hl-line-mode'.")
@@ -14457,7 +14457,7 @@ buffer `*icalendar-errors*'.
 
 (defvar icomplete-mode nil "\
 Non-nil if Icomplete mode is enabled.
-See the command `icomplete-mode' for a description of this minor-mode.
+See the command `icomplete-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `icomplete-mode'.")
@@ -14539,7 +14539,7 @@ See also the variable `idlwave-shell-prompt-pattern'.
 ;;;***
 \f
 ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;;  (17935 59227))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from progmodes/idlwave.el
 
 (autoload (quote idlwave-mode) "idlwave" "\
@@ -15149,7 +15149,7 @@ Example:
 ;;;;;;  image-dired-jump-thumbnail-buffer image-dired-delete-tag
 ;;;;;;  image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs
 ;;;;;;  image-dired-dired-with-window-configuration image-dired-dired-insert-marked-thumbs)
-;;;;;;  "image-dired" "image-dired.el" (17963 26200))
+;;;;;;  "image-dired" "image-dired.el" (17992 30877))
 ;;; Generated autoloads from image-dired.el
 
 (autoload (quote image-dired-dired-insert-marked-thumbs) "image-dired" "\
@@ -15324,7 +15324,7 @@ the command `insert-file-contents'.
 
 (defvar auto-image-file-mode nil "\
 Non-nil if Auto-Image-File mode is enabled.
-See the command `auto-image-file-mode' for a description of this minor-mode.
+See the command `auto-image-file-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `auto-image-file-mode'.")
@@ -15608,7 +15608,7 @@ of `inferior-lisp-program').  Runs the hooks from
 ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node
 ;;;;;;  Info-goto-emacs-command-node Info-mode info-apropos Info-index
 ;;;;;;  Info-directory Info-on-current-buffer info-standalone info-emacs-manual
-;;;;;;  info info-other-window) "info" "info.el" (17964 52883))
+;;;;;;  info info-other-window) "info" "info.el" (18006 55795))
 ;;; Generated autoloads from info.el
 
 (autoload (quote info-other-window) "info" "\
@@ -15927,7 +15927,7 @@ accessed via isearchb.
 ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
 ;;;;;;  iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
 ;;;;;;  iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
-;;;;;;  "international/iso-cvt.el" (17842 54888))
+;;;;;;  "international/iso-cvt.el" (17992 30878))
 ;;; Generated autoloads from international/iso-cvt.el
 
 (autoload (quote iso-spanish) "iso-cvt" "\
@@ -15996,12 +15996,12 @@ Optional arg BUFFER is ignored (for use in `format-alist').
 (autoload (quote iso-cvt-read-only) "iso-cvt" "\
 Warn that format is read-only.
 
-\(fn)" t nil)
+\(fn &rest IGNORE)" t nil)
 
 (autoload (quote iso-cvt-write-only) "iso-cvt" "\
 Warn that format is write-only.
 
-\(fn)" t nil)
+\(fn &rest IGNORE)" t nil)
 
 (autoload (quote iso-cvt-define-menu) "iso-cvt" "\
 Add submenus to the File menu, to convert to and from various formats.
@@ -16024,7 +16024,7 @@ Add submenus to the File menu, to convert to and from various formats.
 ;;;;;;  ispell-region ispell-change-dictionary ispell-kill-ispell
 ;;;;;;  ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist
 ;;;;;;  ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
-;;;;;;  (17921 16827))
+;;;;;;  (18006 55797))
 ;;; Generated autoloads from textmodes/ispell.el
 (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
 
@@ -16317,7 +16317,7 @@ You can bind this to the key C-c i in GNUS or mail by adding to
 
 (defvar iswitchb-mode nil "\
 Non-nil if Iswitchb mode is enabled.
-See the command `iswitchb-mode' for a description of this minor-mode.
+See the command `iswitchb-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `iswitchb-mode'.")
@@ -16935,7 +16935,7 @@ such as redefining an Emacs function.
 ;;;***
 \f
 ;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
-;;;;;;  "locate" "locate.el" (17965 12050))
+;;;;;;  "locate" "locate.el" (17992 30877))
 ;;; Generated autoloads from locate.el
 
 (defvar locate-ls-subdir-switches "-al" "\
@@ -16986,7 +16986,7 @@ except that FILTER is not optional.
 
 ;;;***
 \f
-;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17842 58279))
+;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (18010 5298))
 ;;; Generated autoloads from log-edit.el
 
 (autoload (quote log-edit) "log-edit" "\
@@ -17018,8 +17018,8 @@ Major mode for browsing CVS log output.
 
 ;;;***
 \f
-;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17842
-;;;;;;  58279))
+;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17992
+;;;;;;  30877))
 ;;; Generated autoloads from longlines.el
 
 (autoload (quote longlines-mode) "longlines" "\
@@ -17135,7 +17135,7 @@ for further customization of the printer command.
 ;;;***
 \f
 ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
-;;;;;;  (17851 20943))
+;;;;;;  (18006 55796))
 ;;; Generated autoloads from ls-lisp.el
 
 (defvar ls-lisp-support-shell-wildcards t "\
@@ -17392,7 +17392,7 @@ If 4th arg LIST is non-nil, return a list of all such fields.
 ;;;***
 \f
 ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup)
-;;;;;;  "mailabbrev" "mail/mailabbrev.el" (17842 55035))
+;;;;;;  "mailabbrev" "mail/mailabbrev.el" (17992 30878))
 ;;; Generated autoloads from mail/mailabbrev.el
 
 (autoload (quote mail-abbrevs-setup) "mailabbrev" "\
@@ -17605,7 +17605,7 @@ Previous contents of that buffer are killed first.
 
 ;;;***
 \f
-;;;### (autoloads (man-follow man) "man" "man.el" (17925 15265))
+;;;### (autoloads (man-follow man) "man" "man.el" (17992 30877))
 ;;; Generated autoloads from man.el
 
 (defalias (quote manual-entry) (quote man))
@@ -17662,7 +17662,7 @@ yourself the value of `master-of' by calling `master-show-slave'.
 
 (defvar menu-bar-mode nil "\
 Non-nil if Menu-Bar mode is enabled.
-See the command `menu-bar-mode' for a description of this minor-mode.
+See the command `menu-bar-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `menu-bar-mode'.")
@@ -17690,7 +17690,7 @@ turn on menu bars; otherwise, turn off menu bars.
 ;;;;;;  message-cite-function message-yank-prefix message-citation-line-function
 ;;;;;;  message-send-mail-function message-user-organization-file
 ;;;;;;  message-signature-separator message-from-style) "message"
-;;;;;;  "gnus/message.el" (17949 41467))
+;;;;;;  "gnus/message.el" (18010 19867))
 ;;; Generated autoloads from gnus/message.el
 
 (defvar message-from-style (quote default) "\
@@ -18236,7 +18236,7 @@ to its second argument TM.
 
 (defvar minibuffer-electric-default-mode nil "\
 Non-nil if Minibuffer-Electric-Default mode is enabled.
-See the command `minibuffer-electric-default-mode' for a description of this minor-mode.
+See the command `minibuffer-electric-default-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `minibuffer-electric-default-mode'.")
@@ -18478,7 +18478,7 @@ Convert morse coded text in region to ordinary ASCII text.
 
 (defvar mouse-sel-mode nil "\
 Non-nil if Mouse-Sel mode is enabled.
-See the command `mouse-sel-mode' for a description of this minor-mode.
+See the command `mouse-sel-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `mouse-sel-mode'.")
@@ -18535,12 +18535,12 @@ Multiplication puzzle with GNU Emacs.
 
 ;;;***
 \f
-;;;### (autoloads (msb-mode) "msb" "msb.el" (17842 58279))
+;;;### (autoloads (msb-mode) "msb" "msb.el" (18006 55796))
 ;;; Generated autoloads from msb.el
 
 (defvar msb-mode nil "\
 Non-nil if Msb mode is enabled.
-See the command `msb-mode' for a description of this minor-mode.
+See the command `msb-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `msb-mode'.")
@@ -18870,7 +18870,7 @@ basis, this may not be accurate.
 
 (defvar mouse-wheel-mode nil "\
 Non-nil if Mouse-Wheel mode is enabled.
-See the command `mouse-wheel-mode' for a description of this minor-mode.
+See the command `mouse-wheel-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `mouse-wheel-mode'.")
@@ -18990,7 +18990,7 @@ Open a network connection to HOST on PORT.
 ;;;;;;  uncomment-region comment-kill comment-set-column comment-indent
 ;;;;;;  comment-indent-default comment-normalize-vars comment-multi-line
 ;;;;;;  comment-padding comment-style comment-column) "newcomment"
-;;;;;;  "newcomment.el" (17936 9617))
+;;;;;;  "newcomment.el" (17992 30877))
 ;;; Generated autoloads from newcomment.el
 
 (defalias (quote indent-for-comment) (quote comment-indent))
@@ -19228,7 +19228,7 @@ Switch to newsticker buffer.  You may want to bind this to a key.
 ;;;***
 \f
 ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
-;;;;;;  (17842 54741))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from gnus/nndiary.el
 
 (autoload (quote nndiary-generate-nov-databases) "nndiary" "\
@@ -19845,12 +19845,12 @@ See the command `outline-mode' for more information on this mode.
 
 ;;;***
 \f
-;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17960 50513))
+;;;### (autoloads (show-paren-mode) "paren" "paren.el" (18016 8765))
 ;;; Generated autoloads from paren.el
 
 (defvar show-paren-mode nil "\
 Non-nil if Show-Paren mode is enabled.
-See the command `show-paren-mode' for a description of this minor-mode.
+See the command `show-paren-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `show-paren-mode'.")
@@ -19959,7 +19959,7 @@ C-Escape does list-buffers.
 
 (defvar pc-selection-mode nil "\
 Non-nil if Pc-Selection mode is enabled.
-See the command `pc-selection-mode' for a description of this minor-mode.
+See the command `pc-selection-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `pc-selection-mode'.")
@@ -20213,7 +20213,7 @@ Setup shell-mode to use pcomplete.
 \f
 ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
 ;;;;;;  cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
-;;;;;;  "pcvs.el" (17842 58279))
+;;;;;;  "pcvs.el" (18006 55796))
 ;;; Generated autoloads from pcvs.el
 
 (autoload (quote cvs-checkout) "pcvs" "\
@@ -20277,7 +20277,7 @@ Sensible values are `cvs-examine', `cvs-status' and `cvs-quickdir'.")
 
 (defvar cvs-dired-use-hook (quote (4)) "\
 Whether or not opening a CVS directory should run PCL-CVS.
-nil means never do it.
+A value of nil means never do it.
 ALWAYS means to always do it unless a prefix argument is given to the
   command that prompted the opening of the directory.
 Anything else means to do it only if the prefix arg is equal to this value.")
@@ -20666,7 +20666,7 @@ Ignores leading comment characters.
 ;;;;;;  pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
 ;;;;;;  pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
 ;;;;;;  pr-ps-directory-preview pr-interface) "printing" "printing.el"
-;;;;;;  (17866 8704))
+;;;;;;  (18006 55796))
 ;;; Generated autoloads from printing.el
 
 (autoload (quote pr-interface) "printing" "\
@@ -21191,7 +21191,7 @@ Interactively, you have the following situations:
    C-u 2 M-x pr-ps-fast-fire RET
       The command prompts the user for a N-UP value, then for a current
       PostScript printer and, finally, for a file name.  Then change the active
-      printer to that choosen by user and saves the PostScript image in
+      printer to that chosen by user and saves the PostScript image in
       that file instead of sending it to the printer.
 
 
@@ -21210,7 +21210,7 @@ zero and the argument SELECT is treated as follows:
 
    If it's an integer greater or equal to 2, the command prompts the user for a
    current PostScript printer and for a file name.  Then change the active
-   printer to that choosen by user and saves the PostScript image in that file
+   printer to that chosen by user and saves the PostScript image in that file
    instead of sending it to the printer.
 
    If it's a symbol which it's defined in `pr-ps-printer-alist', it's the new
@@ -21457,8 +21457,8 @@ Not documented
 ;;;;;;  ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
 ;;;;;;  ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
 ;;;;;;  ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
-;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (17900
-;;;;;;  43896))
+;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (18006
+;;;;;;  55796))
 ;;; Generated autoloads from ps-print.el
 
 (defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\
@@ -21652,6 +21652,81 @@ If EXTENSION is any other symbol, it is ignored.
 
 \(fn FACE-EXTENSION &optional MERGE-P ALIST-SYM)" nil nil)
 
+;;;***
+\f
+;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
+;;;;;;  (17992 30878))
+;;; Generated autoloads from progmodes/python.el
+
+(add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode)))
+
+(add-to-list (quote interpreter-mode-alist) (quote ("python" . python-mode)))
+
+(add-to-list (quote auto-mode-alist) (quote ("\\.py\\'" . python-mode)))
+
+(autoload (quote run-python) "python" "\
+Run an inferior Python process, input and output via buffer *Python*.
+CMD is the Python command to run.  NOSHOW non-nil means don't show the
+buffer automatically.
+
+Normally, if there is a process already running in `python-buffer',
+switch to that buffer.  Interactively, a prefix arg allows you to edit
+the initial command line (default is `python-command'); `-i' etc. args
+will be added to this as appropriate.  A new process is started if:
+one isn't running attached to `python-buffer', or interactively the
+default `python-command', or argument NEW is non-nil.  See also the
+documentation for `python-buffer'.
+
+Runs the hook `inferior-python-mode-hook' (after the
+`comint-mode-hook' is run).  (Type \\[describe-mode] in the process
+buffer for a list of commands.)
+
+\(fn &optional CMD NOSHOW NEW)" t nil)
+
+(autoload (quote python-mode) "python" "\
+Major mode for editing Python files.
+Font Lock mode is currently required for correct parsing of the source.
+See also `jython-mode', which is actually invoked if the buffer appears to
+contain Jython code.  See also `run-python' and associated Python mode
+commands for running Python under Emacs.
+
+The Emacs commands which work with `defun's, e.g. \\[beginning-of-defun], deal
+with nested `def' and `class' blocks.  They take the innermost one as
+current without distinguishing method and class definitions.  Used multiple
+times, they move over others at the same indentation level until they reach
+the end of definitions at that level, when they move up a level.
+\\<python-mode-map>
+Colon is electric: it outdents the line if appropriate, e.g. for
+an else statement.  \\[python-backspace] at the beginning of an indented statement
+deletes a level of indentation to close the current block; otherwise it
+deletes a character backward.  TAB indents the current line relative to
+the preceding code.  Successive TABs, with no intervening command, cycle
+through the possibilities for indentation on the basis of enclosing blocks.
+
+\\[fill-paragraph] fills comments and multi-line strings appropriately, but has no
+effect outside them.
+
+Supports Eldoc mode (only for functions, using a Python process),
+Info-Look and Imenu.  In Outline minor mode, `class' and `def'
+lines count as headers.  Symbol completion is available in the
+same way as in the Python shell using the `rlcompleter' module
+and this is added to the Hippie Expand functions locally if
+Hippie Expand mode is turned on.  Completion of symbols of the
+form x.y only works if the components are literal
+module/attribute names, not variables.  An abbrev table is set up
+with skeleton expansions for compound statement templates.
+
+\\{python-mode-map}
+
+\(fn)" t nil)
+
+(autoload (quote jython-mode) "python" "\
+Major mode for editing Jython files.
+Like `python-mode', but sets up parameters for Jython subprocesses.
+Runs `jython-mode-hook' after `python-mode-hook'.
+
+\(fn)" t nil)
+
 ;;;***
 \f
 ;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
@@ -21982,7 +22057,7 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'.
 ;;;***
 \f
 ;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
-;;;;;;  "net/rcirc.el" (17907 1946))
+;;;;;;  "net/rcirc.el" (18006 55797))
 ;;; Generated autoloads from net/rcirc.el
 
 (autoload (quote rcirc) "rcirc" "\
@@ -22000,7 +22075,7 @@ Not documented
 
 (defvar rcirc-track-minor-mode nil "\
 Non-nil if Rcirc-Track minor mode is enabled.
-See the command `rcirc-track-minor-mode' for a description of this minor-mode.
+See the command `rcirc-track-minor-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `rcirc-track-minor-mode'.")
@@ -22044,7 +22119,7 @@ Construct a regexp interactively.
 
 (defvar recentf-mode nil "\
 Non-nil if Recentf mode is enabled.
-See the command `recentf-mode' for a description of this minor-mode.
+See the command `recentf-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `recentf-mode'.")
@@ -22496,7 +22571,7 @@ With zero or negative ARG turn mode off.
 
 (defvar global-reveal-mode nil "\
 Non-nil if Global-Reveal mode is enabled.
-See the command `global-reveal-mode' for a description of this minor-mode.
+See the command `global-reveal-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-reveal-mode'.")
@@ -22582,8 +22657,8 @@ variable.
 ;;;;;;  rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output
 ;;;;;;  rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers
 ;;;;;;  rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names
-;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17938
-;;;;;;  22875))
+;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (18006
+;;;;;;  55797))
 ;;; Generated autoloads from mail/rmail.el
 
 (autoload (quote rmail-movemail-variant-p) "rmail" "\
@@ -23163,8 +23238,8 @@ Display a ruler in the header line if ARG > 0.
 
 ;;;***
 \f
-;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17842
-;;;;;;  54152))
+;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (18011
+;;;;;;  44080))
 ;;; Generated autoloads from emacs-lisp/rx.el
 
 (autoload (quote rx-to-string) "rx" "\
@@ -23236,8 +23311,7 @@ CHAR
      matches the empty string, but only at point.
 
 `word-start', `bow'
-     matches the empty string, but only at the beginning or end of a
-     word.
+     matches the empty string, but only at the beginning of a word.
 
 `word-end', `eow'
      matches the empty string, but only at the end of a word.
@@ -23251,6 +23325,12 @@ CHAR
      matches the empty string, but not at the beginning or end of a
      word.
 
+`symbol-start'
+     matches the empty string, but only at the beginning of a symbol.
+
+`symbol-end'
+     matches the empty string, but only at the end of a symbol.
+
 `digit', `numeric', `num'
      matches 0 through 9.
 
@@ -23559,7 +23639,7 @@ This mode is an extended emacs-lisp mode.
 
 (defvar scroll-all-mode nil "\
 Non-nil if Scroll-All mode is enabled.
-See the command `scroll-all-mode' for a description of this minor-mode.
+See the command `scroll-all-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `scroll-all-mode'.")
@@ -23917,7 +23997,7 @@ kill any existing server communications subprocess.
 
 (defvar server-mode nil "\
 Non-nil if Server mode is enabled.
-See the command `server-mode' for a description of this minor-mode.
+See the command `server-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `server-mode'.")
@@ -23953,7 +24033,7 @@ These are active only in the minibuffer, when entering or editing a formula:
 ;;;***
 \f
 ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
-;;;;;;  (17887 16434))
+;;;;;;  (18010 58080))
 ;;; Generated autoloads from textmodes/sgml-mode.el
 
 (autoload (quote sgml-mode) "sgml-mode" "\
@@ -24021,7 +24101,7 @@ To work around that, do:
 ;;;***
 \f
 ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
-;;;;;;  (17842 56332))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from progmodes/sh-script.el
 (put 'sh-shell 'safe-local-variable 'symbolp)
 
@@ -24270,7 +24350,7 @@ Turning on Sieve mode runs `sieve-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "simple" "simple.el" (17965 11665))
+;;;### (autoloads nil "simple" "simple.el" (18009 38727))
 ;;; Generated autoloads from simple.el
 (put 'fill-prefix 'safe-local-variable 'string-or-null-p)
 
@@ -25474,7 +25554,7 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead.
 
 (defvar strokes-mode nil "\
 Non-nil if Strokes mode is enabled.
-See the command `strokes-mode' for a description of this minor-mode.
+See the command `strokes-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `strokes-mode'.")
@@ -25587,12 +25667,12 @@ before, and `sc-post-hook' is run after the guts of this function.
 
 ;;;***
 \f
-;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17963 25911))
+;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (18006 55796))
 ;;; Generated autoloads from t-mouse.el
 
 (defvar t-mouse-mode nil "\
 Non-nil if T-Mouse mode is enabled.
-See the command `t-mouse-mode' for a description of this minor-mode.
+See the command `t-mouse-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `t-mouse-mode'.")
@@ -25600,10 +25680,12 @@ or call the function `t-mouse-mode'.")
 (custom-autoload (quote t-mouse-mode) "t-mouse" nil)
 
 (autoload (quote t-mouse-mode) "t-mouse" "\
-Toggle t-mouse mode.
+Toggle t-mouse mode to use the mouse in Linux consoles.
 With prefix arg, turn t-mouse mode on iff arg is positive.
 
-Turn it on to use Emacs mouse commands, and off to use t-mouse commands.
+This allows the use of the mouse when operating on a Linux console, in the
+same way as you can use the mouse under X11.
+It requires the `mev' program, part of the `gpm' utilities.
 
 \(fn &optional ARG)" t nil)
 
@@ -25644,7 +25726,7 @@ The variable `tab-width' controls the spacing of tab stops.
 ;;;;;;  table-recognize table-insert-row-column table-insert-column
 ;;;;;;  table-insert-row table-insert table-point-left-cell-hook
 ;;;;;;  table-point-entered-cell-hook table-load-hook table-cell-map-hook)
-;;;;;;  "table" "textmodes/table.el" (17842 58276))
+;;;;;;  "table" "textmodes/table.el" (18012 17784))
 ;;; Generated autoloads from textmodes/table.el
 
 (defvar table-cell-map-hook nil "\
@@ -26242,7 +26324,7 @@ Connect to display DISPLAY for the Emacs talk group.
 
 ;;;***
 \f
-;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17842 58278))
+;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (18010 5426))
 ;;; Generated autoloads from tar-mode.el
 
 (autoload (quote tar-mode) "tar-mode" "\
@@ -26452,7 +26534,7 @@ tetris-mode keybindings:
 ;;;;;;  tex-start-commands tex-start-options slitex-run-command latex-run-command
 ;;;;;;  tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
 ;;;;;;  tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
-;;;;;;  (17842 58276))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from textmodes/tex-mode.el
 
 (defvar tex-shell-file-name nil "\
@@ -27124,7 +27206,7 @@ This function performs no refilling of the changed text.
 ;;;***
 \f
 ;;;### (autoloads (display-time-mode display-time display-time-day-and-date)
-;;;;;;  "time" "time.el" (17842 58278))
+;;;;;;  "time" "time.el" (18006 55796))
 ;;; Generated autoloads from time.el
 
 (defvar display-time-day-and-date nil "\
@@ -27143,7 +27225,7 @@ This runs the normal hook `display-time-hook' after each update.
 
 (defvar display-time-mode nil "\
 Non-nil if Display-Time mode is enabled.
-See the command `display-time-mode' for a description of this minor-mode.
+See the command `display-time-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `display-time-mode'.")
@@ -27296,7 +27378,7 @@ With ARG, turn time stamping on if and only if arg is positive.
 ;;;;;;  timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
 ;;;;;;  timeclock-change timeclock-status-string timeclock-out timeclock-in
 ;;;;;;  timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
-;;;;;;  (17842 53792))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from calendar/timeclock.el
 
 (autoload (quote timeclock-modeline-display) "timeclock" "\
@@ -27694,12 +27776,12 @@ holds a keymap.
 ;;;***
 \f
 ;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
-;;;;;;  (17842 54264))
+;;;;;;  (18006 55796))
 ;;; Generated autoloads from emulation/tpu-edt.el
 
 (defvar tpu-edt-mode nil "\
 Non-nil if Tpu-Edt mode is enabled.
-See the command `tpu-edt-mode' for a description of this minor-mode.
+See the command `tpu-edt-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `tpu-edt-mode'.")
@@ -27919,8 +28001,8 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (17892
-;;;;;;  62683))
+;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (18006
+;;;;;;  55796))
 ;;; Generated autoloads from tutorial.el
 
 (autoload (quote help-with-tutorial) "tutorial" "\
@@ -28423,7 +28505,7 @@ Might do a non-blocking connection; use `process-status' to check.
 
 (defvar url-handler-mode nil "\
 Non-nil if Url-Handler mode is enabled.
-See the command `url-handler-mode' for a description of this minor-mode.
+See the command `url-handler-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `url-handler-mode'.")
@@ -28552,7 +28634,7 @@ URL can be a URL string, or a URL vector of the type returned by
 ;;;***
 \f
 ;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
-;;;;;;  (17842 56569))
+;;;;;;  (18012 18089))
 ;;; Generated autoloads from url/url-mailto.el
 
 (autoload (quote url-mail) "url-mailto" "\
@@ -28887,7 +28969,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME.
 ;;;;;;  vc-directory vc-merge vc-insert-headers vc-version-other-window
 ;;;;;;  vc-diff vc-register vc-next-action vc-do-command edit-vc-file
 ;;;;;;  with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook
-;;;;;;  vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17842 58278))
+;;;;;;  vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17992 30877))
 ;;; Generated autoloads from vc.el
 
 (defvar vc-checkout-hook nil "\
@@ -29896,8 +29978,8 @@ Not documented
 \f
 ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame
 ;;;;;;  view-buffer-other-window view-buffer view-file-other-frame
-;;;;;;  view-file-other-window view-file) "view" "view.el" (17930
-;;;;;;  34071))
+;;;;;;  view-file-other-window view-file) "view" "view.el" (18006
+;;;;;;  55796))
 ;;; Generated autoloads from view.el
 
 (defvar view-mode nil "\
@@ -30272,7 +30354,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
 
 (defvar which-function-mode nil "\
 Non-nil if Which-Function mode is enabled.
-See the command `which-function-mode' for a description of this minor-mode.
+See the command `which-function-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `which-function-mode'.")
@@ -30362,7 +30444,7 @@ Whitespace cleanup on the region.
 
 (defvar whitespace-global-mode nil "\
 Non-nil if Whitespace-Global mode is enabled.
-See the command `whitespace-global-mode' for a description of this minor-mode.
+See the command `whitespace-global-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `whitespace-global-mode'.")
@@ -30706,13 +30788,13 @@ If PARSE-NS is non-nil, then QNAMES are expanded.
 
 ;;;***
 \f
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17938
-;;;;;;  61442))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (18007
+;;;;;;  39657))
 ;;; Generated autoloads from xt-mouse.el
 
 (defvar xterm-mouse-mode nil "\
 Non-nil if Xterm-Mouse mode is enabled.
-See the command `xterm-mouse-mode' for a description of this minor-mode.
+See the command `xterm-mouse-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `xterm-mouse-mode'.")
@@ -30917,7 +30999,7 @@ Zone out, completely.
 ;;;;;;  "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el"
 ;;;;;;  "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el"
 ;;;;;;  "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el"
-;;;;;;  "x-dnd.el") (17965 26976 559735))
+;;;;;;  "x-dnd.el") (18016 62249 573562))
 
 ;;;***
 \f
index 61ecc13636b5df450795b87e139b1afa8d50b1ea..4ac15ee74dccaac176bc5abc6c3533baf0c2a32d 100644 (file)
@@ -306,7 +306,7 @@ Fix any old-style date entries in the current log file to default format.
 \f
 ;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice
 ;;;;;;  ad-enable-advice ad-default-compilation-action ad-redefinition-action)
-;;;;;;  "advice" "emacs-lisp/advice.el" (17842 54152))
+;;;;;;  "advice" "emacs-lisp/advice.el" (17992 30878))
 ;;; Generated autoloads from emacs-lisp/advice.el
 
 (defvar ad-redefinition-action (quote warn) "\
@@ -1461,7 +1461,7 @@ Special commands:
 
 (defvar autoarg-mode nil "\
 Non-nil if Autoarg mode is enabled.
-See the command `autoarg-mode' for a description of this minor-mode.")
+See the command `autoarg-mode' for a description of this minor mode.")
 
 (custom-autoload (quote autoarg-mode) "autoarg" nil)
 
@@ -1489,7 +1489,7 @@ then invokes the normal binding of \\[autoarg-terminate].
 
 (defvar autoarg-kp-mode nil "\
 Non-nil if Autoarg-Kp mode is enabled.
-See the command `autoarg-kp-mode' for a description of this minor-mode.
+See the command `autoarg-kp-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `autoarg-kp-mode'.")
@@ -1539,7 +1539,7 @@ or if CONDITION had no actions, after all other CONDITIONs.
 
 (defvar auto-insert-mode nil "\
 Non-nil if Auto-Insert mode is enabled.
-See the command `auto-insert-mode' for a description of this minor-mode.
+See the command `auto-insert-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `auto-insert-mode'.")
@@ -1645,7 +1645,7 @@ This function is designed to be added to hooks, for example:
 
 (defvar global-auto-revert-mode nil "\
 Non-nil if Global-Auto-Revert mode is enabled.
-See the command `global-auto-revert-mode' for a description of this minor-mode.
+See the command `global-auto-revert-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-auto-revert-mode'.")
@@ -1743,7 +1743,7 @@ The text being displayed in the echo area is controlled by the variables
 
 (defvar display-battery-mode nil "\
 Non-nil if Display-Battery mode is enabled.
-See the command `display-battery-mode' for a description of this minor-mode.
+See the command `display-battery-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `display-battery-mode'.")
@@ -2582,8 +2582,8 @@ name of buffer configuration.
 ;;;***
 \f
 ;;;### (autoloads (insert-text-button make-text-button insert-button
-;;;;;;  make-button define-button-type) "button" "button.el" (17964
-;;;;;;  48350))
+;;;;;;  make-button define-button-type) "button" "button.el" (17992
+;;;;;;  30877))
 ;;; Generated autoloads from button.el
 
 (defvar button-map (let ((map (make-sparse-keymap))) (define-key map "\r" (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\
@@ -3519,7 +3519,7 @@ Return the syntactic context of the current line.
 \f
 ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
 ;;;;;;  c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
-;;;;;;  (17962 52849))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from progmodes/cc-mode.el
 
 (autoload (quote c-initialize-cc-mode) "cc-mode" "\
@@ -4595,7 +4595,7 @@ on third call it again advances points to the next difference and so on.
 ;;;;;;  compilation-shell-minor-mode compilation-mode compilation-start
 ;;;;;;  compile compilation-disable-input compile-command compilation-search-path
 ;;;;;;  compilation-ask-about-save compilation-window-height compilation-mode-hook)
-;;;;;;  "compile" "progmodes/compile.el" (17952 11093))
+;;;;;;  "compile" "progmodes/compile.el" (18006 55797))
 ;;; Generated autoloads from progmodes/compile.el
 
 (defvar compilation-mode-hook nil "\
@@ -4763,7 +4763,7 @@ This is the value of `next-error-function' in Compilation buffers.
 
 (defvar partial-completion-mode nil "\
 Non-nil if Partial-Completion mode is enabled.
-See the command `partial-completion-mode' for a description of this minor-mode.
+See the command `partial-completion-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `partial-completion-mode'.")
@@ -4805,7 +4805,7 @@ second TAB brings up the `*Completions*' buffer.
 
 (defvar dynamic-completion-mode nil "\
 Non-nil if Dynamic-Completion mode is enabled.
-See the command `dynamic-completion-mode' for a description of this minor-mode.
+See the command `dynamic-completion-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `dynamic-completion-mode'.")
@@ -5535,7 +5535,7 @@ INHERIT-INPUT-METHOD.
 
 (defvar cua-mode nil "\
 Non-nil if Cua mode is enabled.
-See the command `cua-mode' for a description of this minor-mode.
+See the command `cua-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `cua-mode'.")
@@ -6012,7 +6012,7 @@ This function is designed to be added to hooks, for example:
 
 (defvar global-cwarn-mode nil "\
 Non-nil if Global-Cwarn mode is enabled.
-See the command `global-cwarn-mode' for a description of this minor-mode.
+See the command `global-cwarn-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-cwarn-mode'.")
@@ -6060,7 +6060,7 @@ If the argument is nil, we return the display table to its standard state.
 ;;;***
 \f
 ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
-;;;;;;  (17842 58280))
+;;;;;;  (18006 55794))
 ;;; Generated autoloads from dabbrev.el
  (define-key esc-map "/" 'dabbrev-expand)
  (define-key esc-map [?\C-/] 'dabbrev-completion)
@@ -6389,7 +6389,7 @@ no args, if that value is non-nil.
 
 (defvar delete-selection-mode nil "\
 Non-nil if Delete-Selection mode is enabled.
-See the command `delete-selection-mode' for a description of this minor-mode.
+See the command `delete-selection-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `delete-selection-mode'.")
@@ -6507,7 +6507,7 @@ as well as widgets, buttons, overlays, and text properties.
 
 (defvar desktop-save-mode nil "\
 Non-nil if Desktop-Save mode is enabled.
-See the command `desktop-save-mode' for a description of this minor-mode.")
+See the command `desktop-save-mode' for a description of this minor mode.")
 
 (custom-autoload (quote desktop-save-mode) "desktop" nil)
 
@@ -6782,7 +6782,7 @@ Major mode for editing the diary file.
 ;;;***
 \f
 ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff"
-;;;;;;  "diff.el" (17842 58280))
+;;;;;;  "diff.el" (17992 30877))
 ;;; Generated autoloads from diff.el
 
 (defvar diff-switches "-c" "\
@@ -6816,7 +6816,7 @@ With prefix arg, prompt for diff switches.
 ;;;***
 \f
 ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el"
-;;;;;;  (17942 63381))
+;;;;;;  (17992 30877))
 ;;; Generated autoloads from diff-mode.el
 
 (autoload (quote diff-mode) "diff-mode" "\
@@ -6848,7 +6848,7 @@ Minor mode for viewing/editing context diffs.
 ;;;;;;  dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink
 ;;;;;;  dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename
 ;;;;;;  dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches)
-;;;;;;  "dired" "dired.el" (17963 25980))
+;;;;;;  "dired" "dired.el" (18015 32019))
 ;;; Generated autoloads from dired.el
 
 (defvar dired-listing-switches "-al" "\
@@ -7468,7 +7468,7 @@ true then the type of the file linked to by FILE is printed instead.
 ;;;***
 \f
 ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el"
-;;;;;;  (17962 27565))
+;;;;;;  (17992 30877))
 ;;; Generated autoloads from dired-x.el
 
 (autoload (quote dired-jump) "dired-x" "\
@@ -7768,7 +7768,7 @@ Play sounds in message buffers.
 \f
 ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
 ;;;;;;  define-globalized-minor-mode define-minor-mode) "easy-mmode"
-;;;;;;  "emacs-lisp/easy-mmode.el" (17964 48351))
+;;;;;;  "emacs-lisp/easy-mmode.el" (17992 30878))
 ;;; Generated autoloads from emacs-lisp/easy-mmode.el
 
 (defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode))
@@ -8939,7 +8939,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
-;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (17842 54152))
+;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (17992 30878))
 ;;; Generated autoloads from emacs-lisp/eldoc.el
 
 (defvar eldoc-minor-mode-string " ElDoc" "\
@@ -8960,7 +8960,7 @@ With prefix ARG, turn ElDoc mode on if and only if ARG is positive.
 \(fn &optional ARG)" t nil)
 
 (autoload (quote turn-on-eldoc-mode) "eldoc" "\
-Unequivocally turn on eldoc-mode (see variable documentation).
+Unequivocally turn on ElDoc mode (see command `eldoc-mode').
 
 \(fn)" t nil)
 
@@ -9138,7 +9138,7 @@ Not documented
 
 (defvar encoded-kbd-mode nil "\
 Non-nil if Encoded-Kbd mode is enabled.
-See the command `encoded-kbd-mode' for a description of this minor-mode.
+See the command `encoded-kbd-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `encoded-kbd-mode'.")
@@ -9628,7 +9628,7 @@ This will add a speedbar major display mode.
 
 (defvar erc-track-minor-mode nil "\
 Non-nil if Erc-Track minor mode is enabled.
-See the command `erc-track-minor-mode' for a description of this minor-mode.")
+See the command `erc-track-minor-mode' for a description of this minor mode.")
 
 (custom-autoload (quote erc-track-minor-mode) "erc-track" nil)
 
@@ -10905,7 +10905,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
 
 ;;;***
 \f
-;;;### (autoloads nil "fill" "textmodes/fill.el" (17961 33560))
+;;;### (autoloads nil "fill" "textmodes/fill.el" (18007 39658))
 ;;; Generated autoloads from textmodes/fill.el
 (put 'colon-double-space 'safe-local-variable 'booleanp)
 
@@ -10913,7 +10913,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
 \f
 ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options
 ;;;;;;  find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el"
-;;;;;;  (17842 58279))
+;;;;;;  (17992 30877))
 ;;; Generated autoloads from find-dired.el
 
 (defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\
@@ -11327,7 +11327,7 @@ Turn flymake mode off.
 \f
 ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
 ;;;;;;  turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
-;;;;;;  "flyspell" "textmodes/flyspell.el" (17962 52849))
+;;;;;;  "flyspell" "textmodes/flyspell.el" (18006 55797))
 ;;; Generated autoloads from textmodes/flyspell.el
 
 (autoload (quote flyspell-prog-mode) "flyspell" "\
@@ -12110,7 +12110,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d)
-;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (17842 54741))
+;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (17992 30878))
 ;;; Generated autoloads from gnus/gnus-diary.el
 
 (autoload (quote gnus-user-format-function-d) "gnus-diary" "\
@@ -12810,7 +12810,7 @@ the form \"WINDOW-ID PIXMAP-ID\".  Value is non-nil if successful.
 ;;;***
 \f
 ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb)
-;;;;;;  "gud" "progmodes/gud.el" (17950 21759))
+;;;;;;  "gud" "progmodes/gud.el" (17992 30878))
 ;;; Generated autoloads from progmodes/gud.el
 
 (autoload (quote gdb) "gud" "\
@@ -13341,7 +13341,7 @@ This discards the buffer's undo information.
 ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
 ;;;;;;  hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
 ;;;;;;  global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
-;;;;;;  (17964 48351))
+;;;;;;  (17992 30877))
 ;;; Generated autoloads from hi-lock.el
 
 (autoload (quote hi-lock-mode) "hi-lock" "\
@@ -13397,7 +13397,7 @@ is found.  A mode is excluded if it's in the list `hi-lock-exclude-modes'.
 
 (defvar global-hi-lock-mode nil "\
 Non-nil if Global-Hi-Lock mode is enabled.
-See the command `global-hi-lock-mode' for a description of this minor-mode.
+See the command `global-hi-lock-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-hi-lock-mode'.")
@@ -13814,7 +13814,7 @@ addition to `hl-line-highlight' on `post-command-hook'.
 
 (defvar global-hl-line-mode nil "\
 Non-nil if Global-Hl-Line mode is enabled.
-See the command `global-hl-line-mode' for a description of this minor-mode.
+See the command `global-hl-line-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-hl-line-mode'.")
@@ -14457,7 +14457,7 @@ buffer `*icalendar-errors*'.
 
 (defvar icomplete-mode nil "\
 Non-nil if Icomplete mode is enabled.
-See the command `icomplete-mode' for a description of this minor-mode.
+See the command `icomplete-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `icomplete-mode'.")
@@ -14539,7 +14539,7 @@ See also the variable `idlwave-shell-prompt-pattern'.
 ;;;***
 \f
 ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;;  (17935 59227))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from progmodes/idlwave.el
 
 (autoload (quote idlwave-mode) "idlwave" "\
@@ -15149,7 +15149,7 @@ Example:
 ;;;;;;  image-dired-jump-thumbnail-buffer image-dired-delete-tag
 ;;;;;;  image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs
 ;;;;;;  image-dired-dired-with-window-configuration image-dired-dired-insert-marked-thumbs)
-;;;;;;  "image-dired" "image-dired.el" (17963 26200))
+;;;;;;  "image-dired" "image-dired.el" (17992 30877))
 ;;; Generated autoloads from image-dired.el
 
 (autoload (quote image-dired-dired-insert-marked-thumbs) "image-dired" "\
@@ -15324,7 +15324,7 @@ the command `insert-file-contents'.
 
 (defvar auto-image-file-mode nil "\
 Non-nil if Auto-Image-File mode is enabled.
-See the command `auto-image-file-mode' for a description of this minor-mode.
+See the command `auto-image-file-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `auto-image-file-mode'.")
@@ -15608,7 +15608,7 @@ of `inferior-lisp-program').  Runs the hooks from
 ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node
 ;;;;;;  Info-goto-emacs-command-node Info-mode info-apropos Info-index
 ;;;;;;  Info-directory Info-on-current-buffer info-standalone info-emacs-manual
-;;;;;;  info info-other-window) "info" "info.el" (17964 52883))
+;;;;;;  info info-other-window) "info" "info.el" (18006 55795))
 ;;; Generated autoloads from info.el
 
 (autoload (quote info-other-window) "info" "\
@@ -15927,7 +15927,7 @@ accessed via isearchb.
 ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
 ;;;;;;  iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
 ;;;;;;  iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
-;;;;;;  "international/iso-cvt.el" (17842 54888))
+;;;;;;  "international/iso-cvt.el" (17992 30878))
 ;;; Generated autoloads from international/iso-cvt.el
 
 (autoload (quote iso-spanish) "iso-cvt" "\
@@ -15996,12 +15996,12 @@ Optional arg BUFFER is ignored (for use in `format-alist').
 (autoload (quote iso-cvt-read-only) "iso-cvt" "\
 Warn that format is read-only.
 
-\(fn)" t nil)
+\(fn &rest IGNORE)" t nil)
 
 (autoload (quote iso-cvt-write-only) "iso-cvt" "\
 Warn that format is write-only.
 
-\(fn)" t nil)
+\(fn &rest IGNORE)" t nil)
 
 (autoload (quote iso-cvt-define-menu) "iso-cvt" "\
 Add submenus to the File menu, to convert to and from various formats.
@@ -16024,7 +16024,7 @@ Add submenus to the File menu, to convert to and from various formats.
 ;;;;;;  ispell-region ispell-change-dictionary ispell-kill-ispell
 ;;;;;;  ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist
 ;;;;;;  ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
-;;;;;;  (17921 16827))
+;;;;;;  (18006 55797))
 ;;; Generated autoloads from textmodes/ispell.el
 (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
 
@@ -16317,7 +16317,7 @@ You can bind this to the key C-c i in GNUS or mail by adding to
 
 (defvar iswitchb-mode nil "\
 Non-nil if Iswitchb mode is enabled.
-See the command `iswitchb-mode' for a description of this minor-mode.
+See the command `iswitchb-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `iswitchb-mode'.")
@@ -16935,7 +16935,7 @@ such as redefining an Emacs function.
 ;;;***
 \f
 ;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
-;;;;;;  "locate" "locate.el" (17965 12050))
+;;;;;;  "locate" "locate.el" (17992 30877))
 ;;; Generated autoloads from locate.el
 
 (defvar locate-ls-subdir-switches "-al" "\
@@ -16986,7 +16986,7 @@ except that FILTER is not optional.
 
 ;;;***
 \f
-;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17842 58279))
+;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (18010 5298))
 ;;; Generated autoloads from log-edit.el
 
 (autoload (quote log-edit) "log-edit" "\
@@ -17018,8 +17018,8 @@ Major mode for browsing CVS log output.
 
 ;;;***
 \f
-;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17842
-;;;;;;  58279))
+;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17992
+;;;;;;  30877))
 ;;; Generated autoloads from longlines.el
 
 (autoload (quote longlines-mode) "longlines" "\
@@ -17135,7 +17135,7 @@ for further customization of the printer command.
 ;;;***
 \f
 ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
-;;;;;;  (17851 20943))
+;;;;;;  (18006 55796))
 ;;; Generated autoloads from ls-lisp.el
 
 (defvar ls-lisp-support-shell-wildcards t "\
@@ -17392,7 +17392,7 @@ If 4th arg LIST is non-nil, return a list of all such fields.
 ;;;***
 \f
 ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup)
-;;;;;;  "mailabbrev" "mail/mailabbrev.el" (17842 55035))
+;;;;;;  "mailabbrev" "mail/mailabbrev.el" (17992 30878))
 ;;; Generated autoloads from mail/mailabbrev.el
 
 (autoload (quote mail-abbrevs-setup) "mailabbrev" "\
@@ -17605,7 +17605,7 @@ Previous contents of that buffer are killed first.
 
 ;;;***
 \f
-;;;### (autoloads (man-follow man) "man" "man.el" (17925 15265))
+;;;### (autoloads (man-follow man) "man" "man.el" (17992 30877))
 ;;; Generated autoloads from man.el
 
 (defalias (quote manual-entry) (quote man))
@@ -17662,7 +17662,7 @@ yourself the value of `master-of' by calling `master-show-slave'.
 
 (defvar menu-bar-mode nil "\
 Non-nil if Menu-Bar mode is enabled.
-See the command `menu-bar-mode' for a description of this minor-mode.
+See the command `menu-bar-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `menu-bar-mode'.")
@@ -17690,7 +17690,7 @@ turn on menu bars; otherwise, turn off menu bars.
 ;;;;;;  message-cite-function message-yank-prefix message-citation-line-function
 ;;;;;;  message-send-mail-function message-user-organization-file
 ;;;;;;  message-signature-separator message-from-style) "message"
-;;;;;;  "gnus/message.el" (17949 41467))
+;;;;;;  "gnus/message.el" (18010 19867))
 ;;; Generated autoloads from gnus/message.el
 
 (defvar message-from-style (quote default) "\
@@ -18236,7 +18236,7 @@ to its second argument TM.
 
 (defvar minibuffer-electric-default-mode nil "\
 Non-nil if Minibuffer-Electric-Default mode is enabled.
-See the command `minibuffer-electric-default-mode' for a description of this minor-mode.
+See the command `minibuffer-electric-default-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `minibuffer-electric-default-mode'.")
@@ -18478,7 +18478,7 @@ Convert morse coded text in region to ordinary ASCII text.
 
 (defvar mouse-sel-mode nil "\
 Non-nil if Mouse-Sel mode is enabled.
-See the command `mouse-sel-mode' for a description of this minor-mode.
+See the command `mouse-sel-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `mouse-sel-mode'.")
@@ -18535,12 +18535,12 @@ Multiplication puzzle with GNU Emacs.
 
 ;;;***
 \f
-;;;### (autoloads (msb-mode) "msb" "msb.el" (17842 58279))
+;;;### (autoloads (msb-mode) "msb" "msb.el" (18006 55796))
 ;;; Generated autoloads from msb.el
 
 (defvar msb-mode nil "\
 Non-nil if Msb mode is enabled.
-See the command `msb-mode' for a description of this minor-mode.
+See the command `msb-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `msb-mode'.")
@@ -18870,7 +18870,7 @@ basis, this may not be accurate.
 
 (defvar mouse-wheel-mode nil "\
 Non-nil if Mouse-Wheel mode is enabled.
-See the command `mouse-wheel-mode' for a description of this minor-mode.
+See the command `mouse-wheel-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `mouse-wheel-mode'.")
@@ -18990,7 +18990,7 @@ Open a network connection to HOST on PORT.
 ;;;;;;  uncomment-region comment-kill comment-set-column comment-indent
 ;;;;;;  comment-indent-default comment-normalize-vars comment-multi-line
 ;;;;;;  comment-padding comment-style comment-column) "newcomment"
-;;;;;;  "newcomment.el" (17936 9617))
+;;;;;;  "newcomment.el" (17992 30877))
 ;;; Generated autoloads from newcomment.el
 
 (defalias (quote indent-for-comment) (quote comment-indent))
@@ -19228,7 +19228,7 @@ Switch to newsticker buffer.  You may want to bind this to a key.
 ;;;***
 \f
 ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
-;;;;;;  (17842 54741))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from gnus/nndiary.el
 
 (autoload (quote nndiary-generate-nov-databases) "nndiary" "\
@@ -19845,12 +19845,12 @@ See the command `outline-mode' for more information on this mode.
 
 ;;;***
 \f
-;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17960 50513))
+;;;### (autoloads (show-paren-mode) "paren" "paren.el" (18016 8765))
 ;;; Generated autoloads from paren.el
 
 (defvar show-paren-mode nil "\
 Non-nil if Show-Paren mode is enabled.
-See the command `show-paren-mode' for a description of this minor-mode.
+See the command `show-paren-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `show-paren-mode'.")
@@ -19959,7 +19959,7 @@ C-Escape does list-buffers.
 
 (defvar pc-selection-mode nil "\
 Non-nil if Pc-Selection mode is enabled.
-See the command `pc-selection-mode' for a description of this minor-mode.
+See the command `pc-selection-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `pc-selection-mode'.")
@@ -20213,7 +20213,7 @@ Setup shell-mode to use pcomplete.
 \f
 ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
 ;;;;;;  cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
-;;;;;;  "pcvs.el" (17842 58279))
+;;;;;;  "pcvs.el" (18006 55796))
 ;;; Generated autoloads from pcvs.el
 
 (autoload (quote cvs-checkout) "pcvs" "\
@@ -20277,7 +20277,7 @@ Sensible values are `cvs-examine', `cvs-status' and `cvs-quickdir'.")
 
 (defvar cvs-dired-use-hook (quote (4)) "\
 Whether or not opening a CVS directory should run PCL-CVS.
-nil means never do it.
+A value of nil means never do it.
 ALWAYS means to always do it unless a prefix argument is given to the
   command that prompted the opening of the directory.
 Anything else means to do it only if the prefix arg is equal to this value.")
@@ -20666,7 +20666,7 @@ Ignores leading comment characters.
 ;;;;;;  pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
 ;;;;;;  pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
 ;;;;;;  pr-ps-directory-preview pr-interface) "printing" "printing.el"
-;;;;;;  (17866 8704))
+;;;;;;  (18006 55796))
 ;;; Generated autoloads from printing.el
 
 (autoload (quote pr-interface) "printing" "\
@@ -21191,7 +21191,7 @@ Interactively, you have the following situations:
    C-u 2 M-x pr-ps-fast-fire RET
       The command prompts the user for a N-UP value, then for a current
       PostScript printer and, finally, for a file name.  Then change the active
-      printer to that choosen by user and saves the PostScript image in
+      printer to that chosen by user and saves the PostScript image in
       that file instead of sending it to the printer.
 
 
@@ -21210,7 +21210,7 @@ zero and the argument SELECT is treated as follows:
 
    If it's an integer greater or equal to 2, the command prompts the user for a
    current PostScript printer and for a file name.  Then change the active
-   printer to that choosen by user and saves the PostScript image in that file
+   printer to that chosen by user and saves the PostScript image in that file
    instead of sending it to the printer.
 
    If it's a symbol which it's defined in `pr-ps-printer-alist', it's the new
@@ -21457,8 +21457,8 @@ Not documented
 ;;;;;;  ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
 ;;;;;;  ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
 ;;;;;;  ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
-;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (17900
-;;;;;;  43896))
+;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (18006
+;;;;;;  55796))
 ;;; Generated autoloads from ps-print.el
 
 (defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\
@@ -21652,6 +21652,81 @@ If EXTENSION is any other symbol, it is ignored.
 
 \(fn FACE-EXTENSION &optional MERGE-P ALIST-SYM)" nil nil)
 
+;;;***
+\f
+;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
+;;;;;;  (17992 30878))
+;;; Generated autoloads from progmodes/python.el
+
+(add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode)))
+
+(add-to-list (quote interpreter-mode-alist) (quote ("python" . python-mode)))
+
+(add-to-list (quote auto-mode-alist) (quote ("\\.py\\'" . python-mode)))
+
+(autoload (quote run-python) "python" "\
+Run an inferior Python process, input and output via buffer *Python*.
+CMD is the Python command to run.  NOSHOW non-nil means don't show the
+buffer automatically.
+
+Normally, if there is a process already running in `python-buffer',
+switch to that buffer.  Interactively, a prefix arg allows you to edit
+the initial command line (default is `python-command'); `-i' etc. args
+will be added to this as appropriate.  A new process is started if:
+one isn't running attached to `python-buffer', or interactively the
+default `python-command', or argument NEW is non-nil.  See also the
+documentation for `python-buffer'.
+
+Runs the hook `inferior-python-mode-hook' (after the
+`comint-mode-hook' is run).  (Type \\[describe-mode] in the process
+buffer for a list of commands.)
+
+\(fn &optional CMD NOSHOW NEW)" t nil)
+
+(autoload (quote python-mode) "python" "\
+Major mode for editing Python files.
+Font Lock mode is currently required for correct parsing of the source.
+See also `jython-mode', which is actually invoked if the buffer appears to
+contain Jython code.  See also `run-python' and associated Python mode
+commands for running Python under Emacs.
+
+The Emacs commands which work with `defun's, e.g. \\[beginning-of-defun], deal
+with nested `def' and `class' blocks.  They take the innermost one as
+current without distinguishing method and class definitions.  Used multiple
+times, they move over others at the same indentation level until they reach
+the end of definitions at that level, when they move up a level.
+\\<python-mode-map>
+Colon is electric: it outdents the line if appropriate, e.g. for
+an else statement.  \\[python-backspace] at the beginning of an indented statement
+deletes a level of indentation to close the current block; otherwise it
+deletes a character backward.  TAB indents the current line relative to
+the preceding code.  Successive TABs, with no intervening command, cycle
+through the possibilities for indentation on the basis of enclosing blocks.
+
+\\[fill-paragraph] fills comments and multi-line strings appropriately, but has no
+effect outside them.
+
+Supports Eldoc mode (only for functions, using a Python process),
+Info-Look and Imenu.  In Outline minor mode, `class' and `def'
+lines count as headers.  Symbol completion is available in the
+same way as in the Python shell using the `rlcompleter' module
+and this is added to the Hippie Expand functions locally if
+Hippie Expand mode is turned on.  Completion of symbols of the
+form x.y only works if the components are literal
+module/attribute names, not variables.  An abbrev table is set up
+with skeleton expansions for compound statement templates.
+
+\\{python-mode-map}
+
+\(fn)" t nil)
+
+(autoload (quote jython-mode) "python" "\
+Major mode for editing Jython files.
+Like `python-mode', but sets up parameters for Jython subprocesses.
+Runs `jython-mode-hook' after `python-mode-hook'.
+
+\(fn)" t nil)
+
 ;;;***
 \f
 ;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
@@ -21982,7 +22057,7 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'.
 ;;;***
 \f
 ;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
-;;;;;;  "net/rcirc.el" (17907 1946))
+;;;;;;  "net/rcirc.el" (18006 55797))
 ;;; Generated autoloads from net/rcirc.el
 
 (autoload (quote rcirc) "rcirc" "\
@@ -22000,7 +22075,7 @@ Not documented
 
 (defvar rcirc-track-minor-mode nil "\
 Non-nil if Rcirc-Track minor mode is enabled.
-See the command `rcirc-track-minor-mode' for a description of this minor-mode.
+See the command `rcirc-track-minor-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `rcirc-track-minor-mode'.")
@@ -22044,7 +22119,7 @@ Construct a regexp interactively.
 
 (defvar recentf-mode nil "\
 Non-nil if Recentf mode is enabled.
-See the command `recentf-mode' for a description of this minor-mode.
+See the command `recentf-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `recentf-mode'.")
@@ -22496,7 +22571,7 @@ With zero or negative ARG turn mode off.
 
 (defvar global-reveal-mode nil "\
 Non-nil if Global-Reveal mode is enabled.
-See the command `global-reveal-mode' for a description of this minor-mode.
+See the command `global-reveal-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `global-reveal-mode'.")
@@ -22582,8 +22657,8 @@ variable.
 ;;;;;;  rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output
 ;;;;;;  rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers
 ;;;;;;  rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names
-;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17938
-;;;;;;  22875))
+;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (18006
+;;;;;;  55797))
 ;;; Generated autoloads from mail/rmail.el
 
 (autoload (quote rmail-movemail-variant-p) "rmail" "\
@@ -23163,8 +23238,8 @@ Display a ruler in the header line if ARG > 0.
 
 ;;;***
 \f
-;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17842
-;;;;;;  54152))
+;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (18011
+;;;;;;  44080))
 ;;; Generated autoloads from emacs-lisp/rx.el
 
 (autoload (quote rx-to-string) "rx" "\
@@ -23236,8 +23311,7 @@ CHAR
      matches the empty string, but only at point.
 
 `word-start', `bow'
-     matches the empty string, but only at the beginning or end of a
-     word.
+     matches the empty string, but only at the beginning of a word.
 
 `word-end', `eow'
      matches the empty string, but only at the end of a word.
@@ -23251,6 +23325,12 @@ CHAR
      matches the empty string, but not at the beginning or end of a
      word.
 
+`symbol-start'
+     matches the empty string, but only at the beginning of a symbol.
+
+`symbol-end'
+     matches the empty string, but only at the end of a symbol.
+
 `digit', `numeric', `num'
      matches 0 through 9.
 
@@ -23559,7 +23639,7 @@ This mode is an extended emacs-lisp mode.
 
 (defvar scroll-all-mode nil "\
 Non-nil if Scroll-All mode is enabled.
-See the command `scroll-all-mode' for a description of this minor-mode.
+See the command `scroll-all-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `scroll-all-mode'.")
@@ -23917,7 +23997,7 @@ kill any existing server communications subprocess.
 
 (defvar server-mode nil "\
 Non-nil if Server mode is enabled.
-See the command `server-mode' for a description of this minor-mode.
+See the command `server-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `server-mode'.")
@@ -23953,7 +24033,7 @@ These are active only in the minibuffer, when entering or editing a formula:
 ;;;***
 \f
 ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
-;;;;;;  (17887 16434))
+;;;;;;  (18010 58080))
 ;;; Generated autoloads from textmodes/sgml-mode.el
 
 (autoload (quote sgml-mode) "sgml-mode" "\
@@ -24021,7 +24101,7 @@ To work around that, do:
 ;;;***
 \f
 ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
-;;;;;;  (17842 56332))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from progmodes/sh-script.el
 (put 'sh-shell 'safe-local-variable 'symbolp)
 
@@ -24270,7 +24350,7 @@ Turning on Sieve mode runs `sieve-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "simple" "simple.el" (17965 11665))
+;;;### (autoloads nil "simple" "simple.el" (18009 38727))
 ;;; Generated autoloads from simple.el
 (put 'fill-prefix 'safe-local-variable 'string-or-null-p)
 
@@ -25474,7 +25554,7 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead.
 
 (defvar strokes-mode nil "\
 Non-nil if Strokes mode is enabled.
-See the command `strokes-mode' for a description of this minor-mode.
+See the command `strokes-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `strokes-mode'.")
@@ -25587,12 +25667,12 @@ before, and `sc-post-hook' is run after the guts of this function.
 
 ;;;***
 \f
-;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17963 25911))
+;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (18006 55796))
 ;;; Generated autoloads from t-mouse.el
 
 (defvar t-mouse-mode nil "\
 Non-nil if T-Mouse mode is enabled.
-See the command `t-mouse-mode' for a description of this minor-mode.
+See the command `t-mouse-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `t-mouse-mode'.")
@@ -25600,10 +25680,12 @@ or call the function `t-mouse-mode'.")
 (custom-autoload (quote t-mouse-mode) "t-mouse" nil)
 
 (autoload (quote t-mouse-mode) "t-mouse" "\
-Toggle t-mouse mode.
+Toggle t-mouse mode to use the mouse in Linux consoles.
 With prefix arg, turn t-mouse mode on iff arg is positive.
 
-Turn it on to use Emacs mouse commands, and off to use t-mouse commands.
+This allows the use of the mouse when operating on a Linux console, in the
+same way as you can use the mouse under X11.
+It requires the `mev' program, part of the `gpm' utilities.
 
 \(fn &optional ARG)" t nil)
 
@@ -25644,7 +25726,7 @@ The variable `tab-width' controls the spacing of tab stops.
 ;;;;;;  table-recognize table-insert-row-column table-insert-column
 ;;;;;;  table-insert-row table-insert table-point-left-cell-hook
 ;;;;;;  table-point-entered-cell-hook table-load-hook table-cell-map-hook)
-;;;;;;  "table" "textmodes/table.el" (17842 58276))
+;;;;;;  "table" "textmodes/table.el" (18012 17784))
 ;;; Generated autoloads from textmodes/table.el
 
 (defvar table-cell-map-hook nil "\
@@ -26242,7 +26324,7 @@ Connect to display DISPLAY for the Emacs talk group.
 
 ;;;***
 \f
-;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17842 58278))
+;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (18010 5426))
 ;;; Generated autoloads from tar-mode.el
 
 (autoload (quote tar-mode) "tar-mode" "\
@@ -26452,7 +26534,7 @@ tetris-mode keybindings:
 ;;;;;;  tex-start-commands tex-start-options slitex-run-command latex-run-command
 ;;;;;;  tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
 ;;;;;;  tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
-;;;;;;  (17842 58276))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from textmodes/tex-mode.el
 
 (defvar tex-shell-file-name nil "\
@@ -27124,7 +27206,7 @@ This function performs no refilling of the changed text.
 ;;;***
 \f
 ;;;### (autoloads (display-time-mode display-time display-time-day-and-date)
-;;;;;;  "time" "time.el" (17842 58278))
+;;;;;;  "time" "time.el" (18006 55796))
 ;;; Generated autoloads from time.el
 
 (defvar display-time-day-and-date nil "\
@@ -27143,7 +27225,7 @@ This runs the normal hook `display-time-hook' after each update.
 
 (defvar display-time-mode nil "\
 Non-nil if Display-Time mode is enabled.
-See the command `display-time-mode' for a description of this minor-mode.
+See the command `display-time-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `display-time-mode'.")
@@ -27296,7 +27378,7 @@ With ARG, turn time stamping on if and only if arg is positive.
 ;;;;;;  timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
 ;;;;;;  timeclock-change timeclock-status-string timeclock-out timeclock-in
 ;;;;;;  timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
-;;;;;;  (17842 53792))
+;;;;;;  (17992 30878))
 ;;; Generated autoloads from calendar/timeclock.el
 
 (autoload (quote timeclock-modeline-display) "timeclock" "\
@@ -27694,12 +27776,12 @@ holds a keymap.
 ;;;***
 \f
 ;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
-;;;;;;  (17842 54264))
+;;;;;;  (18006 55796))
 ;;; Generated autoloads from emulation/tpu-edt.el
 
 (defvar tpu-edt-mode nil "\
 Non-nil if Tpu-Edt mode is enabled.
-See the command `tpu-edt-mode' for a description of this minor-mode.
+See the command `tpu-edt-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `tpu-edt-mode'.")
@@ -27919,8 +28001,8 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (17892
-;;;;;;  62683))
+;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (18006
+;;;;;;  55796))
 ;;; Generated autoloads from tutorial.el
 
 (autoload (quote help-with-tutorial) "tutorial" "\
@@ -28423,7 +28505,7 @@ Might do a non-blocking connection; use `process-status' to check.
 
 (defvar url-handler-mode nil "\
 Non-nil if Url-Handler mode is enabled.
-See the command `url-handler-mode' for a description of this minor-mode.
+See the command `url-handler-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `url-handler-mode'.")
@@ -28552,7 +28634,7 @@ URL can be a URL string, or a URL vector of the type returned by
 ;;;***
 \f
 ;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
-;;;;;;  (17842 56569))
+;;;;;;  (18012 18089))
 ;;; Generated autoloads from url/url-mailto.el
 
 (autoload (quote url-mail) "url-mailto" "\
@@ -28887,7 +28969,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME.
 ;;;;;;  vc-directory vc-merge vc-insert-headers vc-version-other-window
 ;;;;;;  vc-diff vc-register vc-next-action vc-do-command edit-vc-file
 ;;;;;;  with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook
-;;;;;;  vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17842 58278))
+;;;;;;  vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17992 30877))
 ;;; Generated autoloads from vc.el
 
 (defvar vc-checkout-hook nil "\
@@ -29896,8 +29978,8 @@ Not documented
 \f
 ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame
 ;;;;;;  view-buffer-other-window view-buffer view-file-other-frame
-;;;;;;  view-file-other-window view-file) "view" "view.el" (17930
-;;;;;;  34071))
+;;;;;;  view-file-other-window view-file) "view" "view.el" (18006
+;;;;;;  55796))
 ;;; Generated autoloads from view.el
 
 (defvar view-mode nil "\
@@ -30272,7 +30354,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
 
 (defvar which-function-mode nil "\
 Non-nil if Which-Function mode is enabled.
-See the command `which-function-mode' for a description of this minor-mode.
+See the command `which-function-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `which-function-mode'.")
@@ -30362,7 +30444,7 @@ Whitespace cleanup on the region.
 
 (defvar whitespace-global-mode nil "\
 Non-nil if Whitespace-Global mode is enabled.
-See the command `whitespace-global-mode' for a description of this minor-mode.
+See the command `whitespace-global-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `whitespace-global-mode'.")
@@ -30706,13 +30788,13 @@ If PARSE-NS is non-nil, then QNAMES are expanded.
 
 ;;;***
 \f
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17938
-;;;;;;  61442))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (18007
+;;;;;;  39657))
 ;;; Generated autoloads from xt-mouse.el
 
 (defvar xterm-mouse-mode nil "\
 Non-nil if Xterm-Mouse mode is enabled.
-See the command `xterm-mouse-mode' for a description of this minor-mode.
+See the command `xterm-mouse-mode' for a description of this minor mode.
 Setting this variable directly does not take effect;
 either customize it (see the info node `Easy Customization')
 or call the function `xterm-mouse-mode'.")
@@ -30917,7 +30999,7 @@ Zone out, completely.
 ;;;;;;  "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el"
 ;;;;;;  "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el"
 ;;;;;;  "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el"
-;;;;;;  "x-dnd.el") (17965 26976 559735))
+;;;;;;  "x-dnd.el") (18016 63490 111736))
 
 ;;;***
 \f
index 74a76fa4889405e317cd0300b487542cd73fcf12..58ec48c55c42077cc921a191680426c02298d325 100644 (file)
@@ -669,7 +669,12 @@ locate database using the shell command in `locate-update-command'."
 
 ;; Only for GNU locate
 (defun locate-in-alternate-database  (search-string database)
-  "Run the GNU locate command, using an alternate database."
+  "Run the GNU locate program, using an alternate database.
+
+This command only works if you use GNU locate.  It does not work
+properly if `locate-prompt-for-command' is set to t.  In that
+case, you can just run the regular `locate' command and specify
+the database on the command line."
   (interactive
       (list
        (progn
index ed0a5c464e9978022a0f048b461cc98176588458..8f63635ee49c00068fdb268f26d8130cb7862849 100644 (file)
@@ -538,7 +538,7 @@ If we are between paragraphs, return the previous paragraph."
             (point))
           (if (re-search-forward "^[ \t\n]*$" nil t)
               (match-beginning 0)
-            (point)))))
+            (point-max)))))
 
 (defun log-edit-changelog-subparagraph ()
   "Return the bounds of the ChangeLog subparagraph containing point.
index 20da227b01073a3f648abdcb5e45f405e94336c6..94c8004ff5e427faabc6c89b87dbc9c154413de3 100644 (file)
@@ -113,7 +113,7 @@ option will have no effect until you restart Emacs."
        (t '(links uid gid)))           ; GNU ls
   "*A list of optional file attributes that ls-lisp should display.
 It should contain none or more of the symbols: links, uid, gid.
-nil (or an empty list) means display none of them.
+A value of nil (or an empty list) means display none of them.
 
 Concepts come from UNIX: `links' means count of names associated with
 the file\; `uid' means user (owner) identifier\; `gid' means group
index c62cba4822d6ad54f64c65cc91abbbebd248b331..b83b3864cb42152780161064d2a1fa8743690afa 100644 (file)
@@ -494,6 +494,8 @@ of a mail alias.  The value is set up, buffer-local, when first needed.")
             ;; the usual syntax table.
 
             (or (and (integerp last-command-char)
+                     ;; Some commands such as M-> may want to expand first.
+                     (equal this-command 'self-insert)
                      (or (eq (char-syntax last-command-char) ?_)
                          ;; Don't expand on @.
                          (memq last-command-char '(?@ ?. ?% ?! ?_ ?-))))
index bfdd50488772965b5bb63f1573cec0a3ff12ccb7..13aba1a3fb07caddaf3a5ee90367cc040b1d4bd6 100644 (file)
@@ -1959,12 +1959,13 @@ is non-nil if the user has supplied the password interactively.
                        (base64-header-field-end
                         (save-excursion
                           (goto-char start)
+                          ;; Don't try to decode non-text data.
                           (and (re-search-forward
-                                "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*"
+                                "^content-type:\\(\n?[\t ]\\)\\(text\\|message\\)/"
                                 header-end t)
-                               ;; Don't try to decode non-text data.
+                               (goto-char start)
                                (re-search-forward
-                                "^content-type:\\(\n?[\t ]\\)\\(text\\|message\\)/"
+                                "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*"
                                 header-end t)))))
                   (if quoted-printable-header-field-end
                       (save-excursion
@@ -2066,14 +2067,14 @@ is non-nil if the user has supplied the password interactively.
                          header-end t)))
                      (base64-header-field-end
                       (and
+                       ;; Don't decode non-text data.
                        (save-excursion
                          (re-search-forward
-                          "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*"
+                          "^content-type:\\(\n?[\t ]\\)\\(text\\|message\\)/"
                           header-end t))
-                       ;; Don't decode non-text data.
                        (save-excursion
                          (re-search-forward
-                          "^content-type:\\(\n?[\t ]\\)\\(text\\|message\\)/"
+                          "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*"
                           header-end t))))
                      (size
                       ;; Get the numeric value from the Content-Length field.
index e3ea090d652933c7151c3bd5f508b7e2927f218c..29b3a185fb5deb5a40a8606f5b139ac15482c805 100644 (file)
@@ -308,6 +308,8 @@ MH_E_SRC = $(lisp)/mh-e/mh-acros.el $(lisp)/mh-e/mh-alias.el        \
        $(lisp)/mh-e/mh-tool-bar.el $(lisp)/mh-e/mh-utils.el    \
        $(lisp)/mh-e/mh-xface.el
 
+# See the commentary for autoloads above for why we use ./mh-e below
+# instead of $(lisp)/mh-e.
 mh-autoloads: $(lisp)/mh-e/mh-loaddefs.el
 $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
        $(MAKE) $(MFLAGS) pre-mh-loaddefs.el-$(SHELLTYPE)
@@ -319,7 +321,7 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
           --eval "(setq find-file-suppress-same-file-warnings t)" \
           --eval "(setq make-backup-files nil)" \
           -f w32-batch-update-autoloads \
-          "$(lisp)/mh-e/mh-loaddefs.el" $(lisp)/mh-e
+          "$(lisp)/mh-e/mh-loaddefs.el" ./mh-e
 
 pre-mh-loaddefs.el-SH:
        echo ";;; mh-loaddefs.el --- automatically extracted autoloads" > $@
index 55dd40a91bad26829240d5284e6ef630e0c99e5e..ab25a339110837a0d6a39d2c146db0de4c41ca52 100644 (file)
@@ -230,7 +230,7 @@ the test is surrounded by calls to `save-excursion' and
 `save-match-data'.
 
 The categories are sorted by MENU-SORT-KEY.  Smaller keys are on top.
-nil means don't display this menu.
+A value of nil means don't display this menu.
 
 MENU-TITLE is really a format.  If you add %d in it, the %d is
 replaced with the number of items in that menu.
index dc346695ce24b03cee05fec1a8e679dca8c76f63..60d81aedb7a86c1e84a50fe5a7a98f77289de0ec 100644 (file)
@@ -95,9 +95,11 @@ Each element looks like (SERVER-REGEXP . CHANNEL-LIST)."
 
 (defcustom rcirc-fill-column nil
   "*Column beyond which automatic line-wrapping should happen.
-If nil, use value of `fill-column'.  If 'frame-width, use the
-maximum frame width."
+If nil, use value of `fill-column'.
+If `window-width', use the window's width as maximum.
+If `frame-width', use the frame's width as maximum."
   :type '(choice (const :tag "Value of `fill-column'")
+                (const :tag "Full window width" window-width)
                 (const :tag "Full frame width" frame-width)
                 (integer :tag "Number of columns"))
   :group 'rcirc)
@@ -143,8 +145,7 @@ number.  If zero or nil, no truncating is done."
   :group 'rcirc)
 
 (defcustom rcirc-scroll-show-maximum-output t
-  "*If non-nil, scroll buffer to keep the point at the bottom of
-the window."
+  "*If non-nil, scroll buffer to keep the point at the bottom of the window."
   :type 'boolean
   :group 'rcirc)
 
@@ -312,7 +313,7 @@ and the cdr part is used for encoding."
   "List of urls seen in the current buffer.")
 (put 'rcirc-urls 'permanent-local t)
 
-(defvar rcirc-timeout-seconds 60
+(defvar rcirc-timeout-seconds 600
   "Kill connection after this many seconds if there is no activity.")
 
 (defconst rcirc-id-string (concat "rcirc on GNU Emacs " emacs-version))
@@ -1245,6 +1246,8 @@ record activity."
                           (make-string (- text-start fill-start) ?\s)))
                      (fill-column (cond ((eq rcirc-fill-column 'frame-width)
                                          (1- (frame-width)))
+                                        ((eq rcirc-fill-column 'window-width)
+                                         (1- (window-width)))
                                         (rcirc-fill-column
                                          rcirc-fill-column)
                                         (t fill-column))))
index 38ac150b40225a91f95e8a182232eb5330d3862a..95f718d568334ec68d26a40c00c67bc0981bd70c 100644 (file)
@@ -143,7 +143,6 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
       (let ((oldpos (point))
            (dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1)
                        ((eq (syntax-class (syntax-after (point)))      4) 1)))
-           (window-start (window-start))
            pos mismatch face)
        ;;
        ;; Find the other end of the sexp.
@@ -248,13 +247,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
          ;;
          ;; Always set the overlay face, since it varies.
          (overlay-put show-paren-overlay 'priority show-paren-priority)
-         (overlay-put show-paren-overlay 'face face))
-       ;; If there are continued lines, the above operations can
-       ;; force redisplay to recenter the window (since there is no
-       ;; way for it to know that the overlay changes to the buffer
-       ;; are harmless).  So reset the window-start.
-       (unless (window-minibuffer-p)
-         (set-window-start (selected-window) window-start)))
+         (overlay-put show-paren-overlay 'face face)))
     ;; show-paren-mode is nil in this buffer.
     (and show-paren-overlay
         (delete-overlay show-paren-overlay))
index 4a5f208ad19e31889af8dba0862a27a67ded2fa6..eb6e88e7f2f1048aee3d0e632eec5290127df674 100644 (file)
@@ -2315,7 +2315,7 @@ Sensible values are `cvs-examine', `cvs-status' and `cvs-quickdir'."
 ;;;###autoload
 (defcustom cvs-dired-use-hook '(4)
   "Whether or not opening a CVS directory should run PCL-CVS.
-nil means never do it.
+A value of nil means never do it.
 ALWAYS means to always do it unless a prefix argument is given to the
   command that prompted the opening of the directory.
 Anything else means to do it only if the prefix arg is equal to this value."
index 2f6035a7328e48ac8e7952249a919bb7a9adf10f..50d158c3d291dcc6d3d9972bdbdfdc2d1a0a85a5 100644 (file)
@@ -4402,7 +4402,7 @@ Interactively, you have the following situations:
    C-u 2 M-x pr-ps-fast-fire RET
       The command prompts the user for a N-UP value, then for a current
       PostScript printer and, finally, for a file name.  Then change the active
-      printer to that choosen by user and saves the PostScript image in
+      printer to that chosen by user and saves the PostScript image in
       that file instead of sending it to the printer.
 
 
@@ -4421,7 +4421,7 @@ zero and the argument SELECT is treated as follows:
 
    If it's an integer greater or equal to 2, the command prompts the user for a
    current PostScript printer and for a file name.  Then change the active
-   printer to that choosen by user and saves the PostScript image in that file
+   printer to that chosen by user and saves the PostScript image in that file
    instead of sending it to the printer.
 
    If it's a symbol which it's defined in `pr-ps-printer-alist', it's the new
index c3c17a6f3c528e12caa472693dc63e0f7d9a9331..390d49eaea41998b182cc4ed8bdf1ac4440c56e9 100644 (file)
@@ -522,7 +522,7 @@ preferably use the `c-mode-menu' language constant directly."
            (setq lim (max (point-min) (1- (point))))
 
            ;; Look for the latest `c-type' property before end1
-           (when (and (> end1 1)
+           (when (and (> end1 (point-min))
                       (setq type-pos
                             (if (get-text-property (1- end1) 'c-type)
                                 end1
index ce933cb13d592175140560e1b57ff597961731d5..9a630ace9aa8b07970f8994519c0cc9d3938043d 100644 (file)
@@ -1426,7 +1426,8 @@ Turning the mode on runs the normal hook `compilation-minor-mode-hook'."
                             process-status exit-status msg)
                  (cons msg exit-status)))
        (omax (point-max))
-       (opoint (point)))
+       (opoint (point))
+       (cur-buffer (current-buffer)))
     ;; Record where we put the message, so we can ignore it later on.
     (goto-char omax)
     (insert ?\n mode-name " " (car status))
@@ -1447,11 +1448,8 @@ Turning the mode on runs the normal hook `compilation-minor-mode-hook'."
        (goto-char opoint))
     (with-no-warnings
       (if compilation-finish-function
-         (funcall compilation-finish-function (current-buffer) msg)))
-    (let ((functions compilation-finish-functions))
-      (while functions
-       (funcall (car functions) (current-buffer) msg)
-       (setq functions (cdr functions))))))
+         (funcall compilation-finish-function cur-buffer msg)))
+    (run-hook-with-args 'compilation-finish-functions cur-buffer msg)))
 
 ;; Called when compilation process changes state.
 (defun compilation-sentinel (proc msg)
index 3d252190eff32ea7927b4005b33e6c92bc43eda0..e557fdef8430b43e6a6916ea2c20ecd478f0fba5 100644 (file)
@@ -152,7 +152,7 @@ Used to grey out relevant toolbar icons.")
                  :visible (and (not gud-running)
                                (eq gud-minor-mode 'gdba)))
     ([stop]    menu-item "Stop" gud-stop-subjob
-                 :visible (or (not (eq gud-minor-mode 'gdba))
+                 :visible (or (not (memq gud-minor-mode '(gdba pdb)))
                               (and gud-running
                                    (eq gud-minor-mode 'gdba))))
     ([until]   menu-item "Continue to selection" gud-until
index d29e56ce75daffd39db2251a8fd56715624769de..0556c87b43dcb48636a87845c6c11c9f3ce7f1f0 100644 (file)
@@ -2411,16 +2411,18 @@ non-nil."
     ;; Reindent new line
     (idlwave-indent-line)))
 
-(defun idlwave-beginning-of-subprogram ()
-  "Moves point to the beginning of the current program unit."
+(defun idlwave-beginning-of-subprogram (&optional nomark)
+  "Moves point to the beginning of the current program unit.
+If NOMARK is non-nil, do not push mark."
   (interactive)
-  (idlwave-find-key idlwave-begin-unit-reg -1))
+  (idlwave-find-key idlwave-begin-unit-reg -1 nomark))
 
-(defun idlwave-end-of-subprogram ()
-  "Moves point to the start of the next program unit."
+(defun idlwave-end-of-subprogram (&optional nomark)
+  "Moves point to the start of the next program unit.
+If NOMARK is non-nil, do not push mark."
   (interactive)
   (idlwave-end-of-statement)
-  (idlwave-find-key idlwave-end-unit-reg 1))
+  (idlwave-find-key idlwave-end-unit-reg 1 nomark))
 
 (defun idlwave-mark-statement ()
   "Mark current IDL statement."
@@ -2535,7 +2537,7 @@ The marks are pushed."
   "Return (NAME TYPE CLASS) of current routine."
   (idlwave-routines)
   (save-excursion
-    (idlwave-beginning-of-subprogram)
+    (idlwave-beginning-of-subprogram 'nomark)
     (if (looking-at "[ \t]*\\<\\(pro\\|function\\)\\>\\s-+\\(\\([a-zA-Z0-9$_]+\\)::\\)?\\([a-zA-Z0-9$_]+\\)")
        (let* ((type (if (string= (downcase (match-string 1)) "pro")
                         'pro 'function))
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
new file mode 100644 (file)
index 0000000..cc8c44a
--- /dev/null
@@ -0,0 +1,2307 @@
+;;; python.el --- silly walks for Python
+
+;; Copyright (C) 2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
+
+;; Author: Dave Love <fx@gnu.org>
+;; Maintainer: FSF
+;; Created: Nov 2003
+;; Keywords: languages
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; Major mode for editing Python, with support for inferior processes.
+
+;; There is another Python mode, python-mode.el, used by XEmacs and
+;; maintained with Python.  That isn't covered by an FSF copyright
+;; assignment, unlike this code, and seems not to be well-maintained
+;; for Emacs (though I've submitted fixes).  This mode is rather
+;; simpler and is better in other ways.  In particular, using the
+;; syntax functions with text properties maintained by font-lock makes
+;; it more correct with arbitrary string and comment contents.
+
+;; This doesn't implement all the facilities of python-mode.el.  Some
+;; just need doing, e.g. catching exceptions in the inferior Python
+;; buffer (but see M-x pdb for debugging).  [Actually, the use of
+;; `compilation-shell-minor-mode' now is probably enough for that.]
+;; Others don't seem appropriate.  For instance,
+;; `forward-into-nomenclature' should be done separately, since it's
+;; not specific to Python, and I've installed a minor mode to do the
+;; job properly in Emacs 23.  [CC mode 5.31 contains an incompatible
+;; feature, `c-subword-mode' which is intended to have a similar
+;; effect, but actually only affects word-oriented keybindings.]
+
+;; Other things seem more natural or canonical here, e.g. the
+;; {beginning,end}-of-defun implementation dealing with nested
+;; definitions, and the inferior mode following `cmuscheme'.  (The
+;; inferior mode can find the source of errors from
+;; `python-send-region' & al via `compilation-shell-minor-mode'.)
+;; There is (limited) symbol completion using lookup in Python and
+;; Eldoc support also using the inferior process.  Successive TABs
+;; cycle between possible indentations for the line.
+
+;; Even where it has similar facilities, this mode is incompatible
+;; with python-mode.el in some respects.  For instance, various key
+;; bindings are changed to obey Emacs conventions.
+
+;; TODO: See various Fixmes below.
+
+;;; Code:
+
+(eval-when-compile
+  (require 'cl)
+  (require 'compile)
+  (require 'comint)
+  (require 'hippie-exp))
+
+(autoload 'comint-mode "comint")
+
+(defgroup python nil
+  "Silly walks in the Python language."
+  :group 'languages
+  :version "22.1"
+  :link '(emacs-commentary-link "python"))
+\f
+;;;###autoload
+(add-to-list 'interpreter-mode-alist '("jython" . jython-mode))
+;;;###autoload
+(add-to-list 'interpreter-mode-alist '("python" . python-mode))
+;;;###autoload
+(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
+\f
+;;;; Font lock
+
+(defvar python-font-lock-keywords
+  `(,(rx symbol-start
+        ;; From v 2.4 reference.
+        ;; def and class dealt with separately below
+        (or "and" "assert" "break" "continue" "del" "elif" "else"
+            "except" "exec" "finally" "for" "from" "global" "if"
+            "import" "in" "is" "lambda" "not" "or" "pass" "print"
+            "raise" "return" "try" "while" "yield"
+            ;; Future keywords
+            "as" "None" "with"
+             ;; Not real keywords, but close enough to be fontified as such
+             "self" "True" "False")
+        symbol-end)
+    ;; Definitions
+    (,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_))))
+     (1 font-lock-keyword-face) (2 font-lock-type-face))
+    (,(rx symbol-start (group "def") (1+ space) (group (1+ (or word ?_))))
+     (1 font-lock-keyword-face) (2 font-lock-function-name-face))
+    ;; Top-level assignments are worth highlighting.
+    (,(rx line-start (group (1+ (or word ?_))) (0+ space) "=")
+     (1 font-lock-variable-name-face))
+    (,(rx "@" (1+ (or word ?_))) ; decorators
+    (0 font-lock-preprocessor-face))))
+
+(defconst python-font-lock-syntactic-keywords
+  ;; Make outer chars of matching triple-quote sequences into generic
+  ;; string delimiters.  Fixme: Is there a better way?
+  `((,(rx (or line-start buffer-start
+             (not (syntax escape)))    ; avoid escaped leading quote
+         (group (optional (any "uUrR"))) ; prefix gets syntax property
+         (optional (any "rR"))           ; possible second prefix
+         (group (syntax string-quote))   ; maybe gets property
+         (backref 2)                     ; per first quote
+         (group (backref 2)))            ; maybe gets property
+     (1 (python-quote-syntax 1))
+     (2 (python-quote-syntax 2))
+     (3 (python-quote-syntax 3)))
+    ;; This doesn't really help.
+;;;     (,(rx (and ?\\ (group ?\n))) (1 " "))
+    ))
+
+(defun python-quote-syntax (n)
+  "Put `syntax-table' property correctly on triple quote.
+Used for syntactic keywords.  N is the match number (1, 2 or 3)."
+  ;; Given a triple quote, we have to check the context to know
+  ;; whether this is an opening or closing triple or whether it's
+  ;; quoted anyhow, and should be ignored.  (For that we need to do
+  ;; the same job as `syntax-ppss' to be correct and it seems to be OK
+  ;; to use it here despite initial worries.)  We also have to sort
+  ;; out a possible prefix -- well, we don't _have_ to, but I think it
+  ;; should be treated as part of the string.
+
+  ;; Test cases:
+  ;;  ur"""ar""" x='"' # """
+  ;; x = ''' """ ' a
+  ;; '''
+  ;; x '"""' x """ \"""" x
+  ;; Fixme:  """""" goes wrong (due to syntax-ppss not getting the string
+  ;; fence context).
+  (save-excursion
+    (goto-char (match-beginning 0))
+    (cond
+     ;; Consider property for the last char if in a fenced string.
+     ((= n 3)
+      (let ((syntax (syntax-ppss)))
+       (when (eq t (nth 3 syntax))     ; after unclosed fence
+         (goto-char (nth 8 syntax))    ; fence position
+         (skip-chars-forward "uUrR")   ; skip any prefix
+         ;; Is it a matching sequence?
+         (if (eq (char-after) (char-after (match-beginning 2)))
+             (eval-when-compile (string-to-syntax "|"))))))
+     ;; Consider property for initial char, accounting for prefixes.
+     ((or (and (= n 2)                 ; leading quote (not prefix)
+              (= (match-beginning 1) (match-end 1))) ; prefix is null
+         (and (= n 1)                  ; prefix
+              (/= (match-beginning 1) (match-end 1)))) ; non-empty
+      (unless (nth 3 (syntax-ppss))
+        (eval-when-compile (string-to-syntax "|"))))
+     ;; Otherwise (we're in a non-matching string) the property is
+     ;; nil, which is OK.
+     )))
+
+;; This isn't currently in `font-lock-defaults' as probably not worth
+;; it -- we basically only mess with a few normally-symbol characters.
+
+;; (defun python-font-lock-syntactic-face-function (state)
+;;   "`font-lock-syntactic-face-function' for Python mode.
+;; Returns the string or comment face as usual, with side effect of putting
+;; a `syntax-table' property on the inside of the string or comment which is
+;; the standard syntax table."
+;;   (if (nth 3 state)
+;;       (save-excursion
+;;     (goto-char (nth 8 state))
+;;     (condition-case nil
+;;         (forward-sexp)
+;;       (error nil))
+;;     (put-text-property (1+ (nth 8 state)) (1- (point))
+;;                        'syntax-table (standard-syntax-table))
+;;     'font-lock-string-face)
+;;     (put-text-property (1+ (nth 8 state)) (line-end-position)
+;;                        'syntax-table (standard-syntax-table))
+;;     'font-lock-comment-face))
+\f
+;;;; Keymap and syntax
+
+(defvar python-mode-map
+  (let ((map (make-sparse-keymap)))
+    ;; Mostly taken from python-mode.el.
+    (define-key map ":" 'python-electric-colon)
+    (define-key map "\177" 'python-backspace)
+    (define-key map "\C-c<" 'python-shift-left)
+    (define-key map "\C-c>" 'python-shift-right)
+    (define-key map "\C-c\C-k" 'python-mark-block)
+    (define-key map "\C-c\C-n" 'python-next-statement)
+    (define-key map "\C-c\C-p" 'python-previous-statement)
+    (define-key map "\C-c\C-u" 'python-beginning-of-block)
+    (define-key map "\C-c\C-f" 'python-describe-symbol)
+    (define-key map "\C-c\C-w" 'python-check)
+    (define-key map "\C-c\C-v" 'python-check) ; a la sgml-mode
+    (define-key map "\C-c\C-s" 'python-send-string)
+    (define-key map [?\C-\M-x] 'python-send-defun)
+    (define-key map "\C-c\C-r" 'python-send-region)
+    (define-key map "\C-c\M-r" 'python-send-region-and-go)
+    (define-key map "\C-c\C-c" 'python-send-buffer)
+    (define-key map "\C-c\C-z" 'python-switch-to-python)
+    (define-key map "\C-c\C-m" 'python-load-file)
+    (define-key map "\C-c\C-l" 'python-load-file) ; a la cmuscheme
+    (substitute-key-definition 'complete-symbol 'python-complete-symbol
+                              map global-map)
+    (define-key map "\C-c\C-i" 'python-find-imports)
+    (define-key map "\C-c\C-t" 'python-expand-template)
+    (easy-menu-define python-menu map "Python Mode menu"
+      `("Python"
+       :help "Python-specific Features"
+       ["Shift region left" python-shift-left :active mark-active
+        :help "Shift by a single indentation step"]
+       ["Shift region right" python-shift-right :active mark-active
+        :help "Shift by a single indentation step"]
+       "-"
+       ["Mark block" python-mark-block
+        :help "Mark innermost block around point"]
+       ["Mark def/class" mark-defun
+        :help "Mark innermost definition around point"]
+       "-"
+       ["Start of block" python-beginning-of-block
+        :help "Go to start of innermost definition around point"]
+       ["End of block" python-end-of-block
+        :help "Go to end of innermost definition around point"]
+       ["Start of def/class" beginning-of-defun
+        :help "Go to start of innermost definition around point"]
+       ["End of def/class" end-of-defun
+        :help "Go to end of innermost definition around point"]
+       "-"
+       ("Templates..."
+        :help "Expand templates for compound statements"
+        :filter (lambda (&rest junk)
+                  (mapcar (lambda (elt)
+                            (vector (car elt) (cdr elt) t))
+                          python-skeletons))) ; defined later
+       "-"
+       ["Start interpreter" run-python
+        :help "Run `inferior' Python in separate buffer"]
+       ["Import/reload file" python-load-file
+        :help "Load into inferior Python session"]
+       ["Eval buffer" python-send-buffer
+        :help "Evaluate buffer en bloc in inferior Python session"]
+       ["Eval region" python-send-region :active mark-active
+        :help "Evaluate region en bloc in inferior Python session"]
+       ["Eval def/class" python-send-defun
+        :help "Evaluate current definition in inferior Python session"]
+       ["Switch to interpreter" python-switch-to-python
+        :help "Switch to inferior Python buffer"]
+       ["Set default process" python-set-proc
+        :help "Make buffer's inferior process the default"
+        :active (buffer-live-p python-buffer)]
+       ["Check file" python-check :help "Run pychecker"]
+       ["Debugger" pdb :help "Run pdb under GUD"]
+       "-"
+       ["Help on symbol" python-describe-symbol
+        :help "Use pydoc on symbol at point"]
+       ["Complete symbol" python-complete-symbol
+        :help "Complete (qualified) symbol before point"]
+       ["Update imports" python-find-imports
+        :help "Update list of top-level imports for completion"]))
+    map))
+;; Fixme: add toolbar stuff for useful things like symbol help, send
+;; region, at least.  (Shouldn't be specific to Python, obviously.)
+;; eric has items including: (un)indent, (un)comment, restart script,
+;; run script, debug script; also things for profiling, unit testing.
+
+(defvar python-mode-syntax-table
+  (let ((table (make-syntax-table)))
+    ;; Give punctuation syntax to ASCII that normally has symbol
+    ;; syntax or has word syntax and isn't a letter.
+    (let ((symbol (string-to-syntax "_"))
+         (sst (standard-syntax-table)))
+      (dotimes (i 128)
+       (unless (= i ?_)
+         (if (equal symbol (aref sst i))
+             (modify-syntax-entry i "." table)))))
+    (modify-syntax-entry ?$ "." table)
+    (modify-syntax-entry ?% "." table)
+    ;; exceptions
+    (modify-syntax-entry ?# "<" table)
+    (modify-syntax-entry ?\n ">" table)
+    (modify-syntax-entry ?' "\"" table)
+    (modify-syntax-entry ?` "$" table)
+    table))
+\f
+;;;; Utility stuff
+
+(defsubst python-in-string/comment ()
+  "Return non-nil if point is in a Python literal (a comment or string)."
+  ;; We don't need to save the match data.
+  (nth 8 (syntax-ppss)))
+
+(defconst python-space-backslash-table
+  (let ((table (copy-syntax-table python-mode-syntax-table)))
+    (modify-syntax-entry ?\\ " " table)
+    table)
+  "`python-mode-syntax-table' with backslash given whitespace syntax.")
+
+(defun python-skip-comments/blanks (&optional backward)
+  "Skip comments and blank lines.
+BACKWARD non-nil means go backwards, otherwise go forwards.
+Backslash is treated as whitespace so that continued blank lines
+are skipped.  Doesn't move out of comments -- should be outside
+or at end of line."
+  (let ((arg (if backward
+                ;; If we're in a comment (including on the trailing
+                ;; newline), forward-comment doesn't move backwards out
+                ;; of it.  Don't set the syntax table round this bit!
+                (let ((syntax (syntax-ppss)))
+                  (if (nth 4 syntax)
+                      (goto-char (nth 8 syntax)))
+                  (- (point-max)))
+              (point-max))))
+    (with-syntax-table python-space-backslash-table
+      (forward-comment arg))))
+
+(defun python-backslash-continuation-line-p ()
+  "Non-nil if preceding line ends with backslash that is not in a comment."
+  (and (eq ?\\ (char-before (line-end-position 0)))
+       (not (syntax-ppss-context (syntax-ppss)))))
+
+(defun python-continuation-line-p ()
+  "Return non-nil if current line continues a previous one.
+The criteria are that the previous line ends in a backslash outside
+comments and strings, or that point is within brackets/parens."
+  (or (python-backslash-continuation-line-p)
+      (let ((depth (syntax-ppss-depth
+                   (save-excursion ; syntax-ppss with arg changes point
+                     (syntax-ppss (line-beginning-position))))))
+       (or (> depth 0)
+           (if (< depth 0)       ; Unbalanced brackets -- act locally
+               (save-excursion
+                 (condition-case ()
+                     (progn (backward-up-list) t) ; actually within brackets
+                   (error nil))))))))
+
+(defun python-comment-line-p ()
+  "Return non-nil iff current line has only a comment."
+  (save-excursion
+    (end-of-line)
+    (when (eq 'comment (syntax-ppss-context (syntax-ppss)))
+      (back-to-indentation)
+      (looking-at (rx (or (syntax comment-start) line-end))))))
+
+(defun python-blank-line-p ()
+  "Return non-nil iff current line is blank."
+  (save-excursion
+    (beginning-of-line)
+    (looking-at "\\s-*$")))
+
+(defun python-beginning-of-string ()
+  "Go to beginning of string around point.
+Do nothing if not in string."
+  (let ((state (syntax-ppss)))
+    (when (eq 'string (syntax-ppss-context state))
+      (goto-char (nth 8 state)))))
+
+(defun python-open-block-statement-p (&optional bos)
+  "Return non-nil if statement at point opens a block.
+BOS non-nil means point is known to be at beginning of statement."
+  (save-excursion
+    (unless bos (python-beginning-of-statement))
+    (looking-at (rx (and (or "if" "else" "elif" "while" "for" "def"
+                            "class" "try" "except" "finally" "with")
+                        symbol-end)))))
+
+(defun python-close-block-statement-p (&optional bos)
+  "Return non-nil if current line is a statement closing a block.
+BOS non-nil means point is at beginning of statement.
+The criteria are that the line isn't a comment or in string and
+ starts with keyword `raise', `break', `continue' or `pass'."
+  (save-excursion
+    (unless bos (python-beginning-of-statement))
+    (back-to-indentation)
+    (looking-at (rx (or "return" "raise" "break" "continue" "pass")
+                   symbol-end))))
+
+(defun python-outdent-p ()
+  "Return non-nil if current line should outdent a level."
+  (save-excursion
+    (back-to-indentation)
+    (and (looking-at (rx (and (or "else" "finally" "except" "elif")
+                             symbol-end)))
+        (not (python-in-string/comment))
+        ;; Ensure there's a previous statement and move to it.
+        (zerop (python-previous-statement))
+        (not (python-close-block-statement-p t))
+        ;; Fixme: check this
+        (not (python-open-block-statement-p)))))
+\f
+;;;; Indentation.
+
+(defcustom python-indent 4
+  "Number of columns for a unit of indentation in Python mode.
+See also `\\[python-guess-indent]'"
+  :group 'python
+  :type 'integer)
+(put 'python-indent 'safe-local-variable 'integerp)
+
+(defcustom python-guess-indent t
+  "Non-nil means Python mode guesses `python-indent' for the buffer."
+  :type 'boolean
+  :group 'python)
+
+(defcustom python-indent-string-contents t
+  "Non-nil means indent contents of multi-line strings together.
+This means indent them the same as the preceding non-blank line.
+Otherwise preserve their indentation.
+
+This only applies to `doc' strings, i.e. those that form statements;
+the indentation is preserved in others."
+  :type '(choice (const :tag "Align with preceding" t)
+                (const :tag "Preserve indentation" nil))
+  :group 'python)
+
+(defcustom python-honour-comment-indentation nil
+  "Non-nil means indent relative to preceding comment line.
+Only do this for comments where the leading comment character is
+followed by space.  This doesn't apply to comment lines, which
+are always indented in lines with preceding comments."
+  :type 'boolean
+  :group 'python)
+
+(defcustom python-continuation-offset 4
+  "Number of columns of additional indentation for continuation lines.
+Continuation lines follow a backslash-terminated line starting a
+statement."
+  :group 'python
+  :type 'integer)
+
+(defun python-guess-indent ()
+  "Guess step for indentation of current buffer.
+Set `python-indent' locally to the value guessed."
+  (interactive)
+  (save-excursion
+    (save-restriction
+      (widen)
+      (goto-char (point-min))
+      (let (done indent)
+       (while (and (not done) (not (eobp)))
+         (when (and (re-search-forward (rx ?: (0+ space)
+                                           (or (syntax comment-start)
+                                               line-end))
+                                       nil 'move)
+                    (python-open-block-statement-p))
+           (save-excursion
+             (python-beginning-of-statement)
+             (let ((initial (current-indentation)))
+               (if (zerop (python-next-statement))
+                   (setq indent (- (current-indentation) initial)))
+               (if (and indent (>= indent 2) (<= indent 8)) ; sanity check
+                   (setq done t))))))
+       (when done
+         (when (/= indent (default-value 'python-indent))
+           (set (make-local-variable 'python-indent) indent)
+           (unless (= tab-width python-indent)
+             (setq indent-tabs-mode nil)))
+         indent)))))
+
+;; Alist of possible indentations and start of statement they would
+;; close.  Used in indentation cycling (below).
+(defvar python-indent-list nil
+  "Internal use.")
+;; Length of the above
+(defvar python-indent-list-length nil
+  "Internal use.")
+;; Current index into the alist.
+(defvar python-indent-index nil
+  "Internal use.")
+
+(defun python-calculate-indentation ()
+  "Calculate Python indentation for line at point."
+  (setq python-indent-list nil
+       python-indent-list-length 1)
+  (save-excursion
+    (beginning-of-line)
+    (let ((syntax (syntax-ppss))
+         start)
+      (cond
+       ((eq 'string (syntax-ppss-context syntax)) ; multi-line string
+       (if (not python-indent-string-contents)
+           (current-indentation)
+         ;; Only respect `python-indent-string-contents' in doc
+         ;; strings (defined as those which form statements).
+         (if (not (save-excursion
+                    (python-beginning-of-statement)
+                    (looking-at (rx (or (syntax string-delimiter)
+                                        (syntax string-quote))))))
+             (current-indentation)
+           ;; Find indentation of preceding non-blank line within string.
+           (setq start (nth 8 syntax))
+           (forward-line -1)
+           (while (and (< start (point)) (looking-at "\\s-*$"))
+             (forward-line -1))
+           (current-indentation))))
+       ((python-continuation-line-p)   ; after backslash, or bracketed
+       (let ((point (point))
+             (open-start (cadr syntax))
+             (backslash (python-backslash-continuation-line-p))
+             (colon (eq ?: (char-before (1- (line-beginning-position))))))
+         (if open-start
+             ;; Inside bracketed expression.
+             (progn
+               (goto-char (1+ open-start))
+               ;; Look for first item in list (preceding point) and
+               ;; align with it, if found.
+               (if (with-syntax-table python-space-backslash-table
+                     (let ((parse-sexp-ignore-comments t))
+                       (condition-case ()
+                           (progn (forward-sexp)
+                                  (backward-sexp)
+                                  (< (point) point))
+                         (error nil))))
+                   ;; Extra level if we're backslash-continued or
+                   ;; following a key.
+                   (if (or backslash colon)
+                       (+ python-indent (current-column))
+                       (current-column))
+                 ;; Otherwise indent relative to statement start, one
+                 ;; level per bracketing level.
+                 (goto-char (1+ open-start))
+                 (python-beginning-of-statement)
+                 (+ (current-indentation) (* (car syntax) python-indent))))
+           ;; Otherwise backslash-continued.
+           (forward-line -1)
+           (if (python-continuation-line-p)
+               ;; We're past first continuation line.  Align with
+               ;; previous line.
+               (current-indentation)
+             ;; First continuation line.  Indent one step, with an
+             ;; extra one if statement opens a block.
+             (python-beginning-of-statement)
+             (+ (current-indentation) python-continuation-offset
+                (if (python-open-block-statement-p t)
+                    python-indent
+                  0))))))
+       ((bobp) 0)
+       ;; Fixme: Like python-mode.el; not convinced by this.
+       ((looking-at (rx (0+ space) (syntax comment-start)
+                       (not (any " \t\n")))) ; non-indentable comment
+       (current-indentation))
+       (t (if python-honour-comment-indentation
+              ;; Back over whitespace, newlines, non-indentable comments.
+              (catch 'done
+                (while t
+                  (if (cond ((bobp))
+                            ;; not at comment start
+                            ((not (forward-comment -1))
+                             (python-beginning-of-statement)
+                             t)
+                            ;; trailing comment
+                            ((/= (current-column) (current-indentation))
+                             (python-beginning-of-statement)
+                             t)
+                            ;; indentable comment like python-mode.el
+                            ((and (looking-at (rx (syntax comment-start)
+                                                  (or space line-end)))
+                                  (/= 0 (current-column)))))
+                      (throw 'done t)))))
+          (python-indentation-levels)
+          ;; Prefer to indent comments with an immediately-following
+          ;; statement, e.g.
+          ;;       ...
+          ;;   # ...
+          ;;   def ...
+          (when (and (> python-indent-list-length 1)
+                     (python-comment-line-p))
+            (forward-line)
+            (unless (python-comment-line-p)
+              (let ((elt (assq (current-indentation) python-indent-list)))
+                (setq python-indent-list
+                      (nconc (delete elt python-indent-list)
+                             (list elt))))))
+          (caar (last python-indent-list)))))))
+
+;;;; Cycling through the possible indentations with successive TABs.
+
+;; These don't need to be buffer-local since they're only relevant
+;; during a cycle.
+
+(defun python-initial-text ()
+  "Text of line following indentation and ignoring any trailing comment."
+  (save-excursion
+    (buffer-substring (progn
+                       (back-to-indentation)
+                       (point))
+                     (progn
+                       (end-of-line)
+                       (forward-comment -1)
+                       (point)))))
+
+(defconst python-block-pairs
+  '(("else" "if" "elif" "while" "for" "try" "except")
+    ("elif" "if" "elif")
+    ("except" "try" "except")
+    ("finally" "try"))
+  "Alist of keyword matches.
+The car of an element is a keyword introducing a statement which
+can close a block opened by a keyword in the cdr.")
+
+(defun python-first-word ()
+  "Return first word (actually symbol) on the line."
+  (save-excursion
+    (back-to-indentation)
+    (current-word t)))
+
+(defun python-indentation-levels ()
+  "Return a list of possible indentations for this line.
+It is assumed not to be a continuation line or in a multi-line string.
+Includes the default indentation and those which would close all
+enclosing blocks.  Elements of the list are actually pairs:
+\(INDENTATION . TEXT), where TEXT is the initial text of the
+corresponding block opening (or nil)."
+  (save-excursion
+    (let ((initial "")
+         levels indent)
+      ;; Only one possibility immediately following a block open
+      ;; statement, assuming it doesn't have a `suite' on the same line.
+      (cond
+       ((save-excursion (and (python-previous-statement)
+                            (python-open-block-statement-p t)
+                            (setq indent (current-indentation))
+                            ;; Check we don't have something like:
+                            ;;   if ...: ...
+                            (if (progn (python-end-of-statement)
+                                       (python-skip-comments/blanks t)
+                                       (eq ?: (char-before)))
+                                (setq indent (+ python-indent indent)))))
+       (push (cons indent initial) levels))
+       ;; Only one possibility for comment line immediately following
+       ;; another.
+       ((save-excursion
+         (when (python-comment-line-p)
+           (forward-line -1)
+           (if (python-comment-line-p)
+               (push (cons (current-indentation) initial) levels)))))
+       ;; Fixme: Maybe have a case here which indents (only) first
+       ;; line after a lambda.
+       (t
+       (let ((start (car (assoc (python-first-word) python-block-pairs))))
+         (python-previous-statement)
+         ;; Is this a valid indentation for the line of interest?
+         (unless (or (if start         ; potentially only outdentable
+                         ;; Check for things like:
+                         ;;   if ...: ...
+                         ;;   else ...:
+                         ;; where the second line need not be outdented.
+                         (not (member (python-first-word)
+                                      (cdr (assoc start
+                                                  python-block-pairs)))))
+                     ;; Not sensible to indent to the same level as
+                     ;; previous `return' &c.
+                     (python-close-block-statement-p))
+           (push (cons (current-indentation) (python-initial-text))
+                 levels))
+         (while (python-beginning-of-block)
+           (when (or (not start)
+                     (member (python-first-word)
+                             (cdr (assoc start python-block-pairs))))
+             (push (cons (current-indentation) (python-initial-text))
+                   levels))))))
+      (prog1 (or levels (setq levels '((0 . ""))))
+       (setq python-indent-list levels
+             python-indent-list-length (length python-indent-list))))))
+
+;; This is basically what `python-indent-line' would be if we didn't
+;; do the cycling.
+(defun python-indent-line-1 (&optional leave)
+  "Subroutine of `python-indent-line'.
+Does non-repeated indentation.  LEAVE non-nil means leave
+indentation if it is valid, i.e. one of the positions returned by
+`python-calculate-indentation'."
+  (let ((target (python-calculate-indentation))
+       (pos (- (point-max) (point))))
+    (if (or (= target (current-indentation))
+           ;; Maybe keep a valid indentation.
+           (and leave python-indent-list
+                (assq (current-indentation) python-indent-list)))
+       (if (< (current-column) (current-indentation))
+           (back-to-indentation))
+      (beginning-of-line)
+      (delete-horizontal-space)
+      (indent-to target)
+      (if (> (- (point-max) pos) (point))
+         (goto-char (- (point-max) pos))))))
+
+(defun python-indent-line ()
+  "Indent current line as Python code.
+When invoked via `indent-for-tab-command', cycle through possible
+indentations for current line.  The cycle is broken by a command
+different from `indent-for-tab-command', i.e. successive TABs do
+the cycling."
+  (interactive)
+  (if (and (eq this-command 'indent-for-tab-command)
+          (eq last-command this-command))
+      (if (= 1 python-indent-list-length)
+         (message "Sole indentation")
+       (progn (setq python-indent-index
+                    (% (1+ python-indent-index) python-indent-list-length))
+              (beginning-of-line)
+              (delete-horizontal-space)
+              (indent-to (car (nth python-indent-index python-indent-list)))
+              (if (python-block-end-p)
+                  (let ((text (cdr (nth python-indent-index
+                                        python-indent-list))))
+                    (if text
+                        (message "Closes: %s" text))))))
+    (python-indent-line-1)
+    (setq python-indent-index (1- python-indent-list-length))))
+
+(defun python-indent-region (start end)
+  "`indent-region-function' for Python.
+Leaves validly-indented lines alone, i.e. doesn't indent to
+another valid position."
+  (save-excursion
+    (goto-char end)
+    (setq end (point-marker))
+    (goto-char start)
+    (or (bolp) (forward-line 1))
+    (while (< (point) end)
+      (or (and (bolp) (eolp))
+         (python-indent-line-1 t))
+      (forward-line 1))
+    (move-marker end nil)))
+
+(defun python-block-end-p ()
+  "Non-nil if this is a line in a statement closing a block,
+or a blank line indented to where it would close a block."
+  (and (not (python-comment-line-p))
+       (or (python-close-block-statement-p t)
+          (< (current-indentation)
+             (save-excursion
+               (python-previous-statement)
+               (current-indentation))))))
+\f
+;;;; Movement.
+
+;; Fixme:  Define {for,back}ward-sexp-function?  Maybe skip units like
+;; block, statement, depending on context.
+
+(defun python-beginning-of-defun ()
+  "`beginning-of-defun-function' for Python.
+Finds beginning of innermost nested class or method definition.
+Returns the name of the definition found at the end, or nil if
+reached start of buffer."
+  (let ((ci (current-indentation))
+       (def-re (rx line-start (0+ space) (or "def" "class") (1+ space)
+                   (group (1+ (or word (syntax symbol))))))
+       found lep) ;; def-line
+    (if (python-comment-line-p)
+       (setq ci most-positive-fixnum))
+    (while (and (not (bobp)) (not found))
+      ;; Treat bol at beginning of function as outside function so
+      ;; that successive C-M-a makes progress backwards.
+      ;;(setq def-line (looking-at def-re))
+      (unless (bolp) (end-of-line))
+      (setq lep (line-end-position))
+      (if (and (re-search-backward def-re nil 'move)
+              ;; Must be less indented or matching top level, or
+              ;; equally indented if we started on a definition line.
+              (let ((in (current-indentation)))
+                (or (and (zerop ci) (zerop in))
+                    (= lep (line-end-position)) ; on initial line
+                    ;; Not sure why it was like this -- fails in case of
+                    ;; last internal function followed by first
+                    ;; non-def statement of the main body.
+                     ;;(and def-line (= in ci))
+                    (= in ci)
+                    (< in ci)))
+              (not (python-in-string/comment)))
+         (setq found t)))))
+
+(defun python-end-of-defun ()
+  "`end-of-defun-function' for Python.
+Finds end of innermost nested class or method definition."
+  (let ((orig (point))
+       (pattern (rx line-start (0+ space) (or "def" "class") space)))
+    ;; Go to start of current block and check whether it's at top
+    ;; level.  If it is, and not a block start, look forward for
+    ;; definition statement.
+    (when (python-comment-line-p)
+      (end-of-line)
+      (forward-comment most-positive-fixnum))
+    (if (not (python-open-block-statement-p))
+       (python-beginning-of-block))
+    (if (zerop (current-indentation))
+       (unless (python-open-block-statement-p)
+         (while (and (re-search-forward pattern nil 'move)
+                     (python-in-string/comment))) ; just loop
+         (unless (eobp)
+           (beginning-of-line)))
+      ;; Don't move before top-level statement that would end defun.
+      (end-of-line)
+      (python-beginning-of-defun))
+    ;; If we got to the start of buffer, look forward for
+    ;; definition statement.
+    (if (and (bobp) (not (looking-at "def\\|class")))
+       (while (and (not (eobp))
+                   (re-search-forward pattern nil 'move)
+                   (python-in-string/comment)))) ; just loop
+    ;; We're at a definition statement (or end-of-buffer).
+    (unless (eobp)
+      (python-end-of-block)
+      ;; Count trailing space in defun (but not trailing comments).
+      (skip-syntax-forward " >")
+      (unless (eobp)                   ; e.g. missing final newline
+       (beginning-of-line)))
+    ;; Catch pathological cases like this, where the beginning-of-defun
+    ;; skips to a definition we're not in:
+    ;; if ...:
+    ;;     ...
+    ;; else:
+    ;;     ...  # point here
+    ;;     ...
+    ;;     def ...
+    (if (< (point) orig)
+       (goto-char (point-max)))))
+
+(defun python-beginning-of-statement ()
+  "Go to start of current statement.
+Accounts for continuation lines, multi-line strings, and
+multi-line bracketed expressions."
+  (beginning-of-line)
+  (python-beginning-of-string)
+  (while (python-continuation-line-p)
+    (beginning-of-line)
+    (if (python-backslash-continuation-line-p)
+       (progn
+         (forward-line -1)
+         (while (python-backslash-continuation-line-p)
+           (forward-line -1)))
+      (python-beginning-of-string)
+      (python-skip-out)))
+  (back-to-indentation))
+
+(defun python-skip-out (&optional forward syntax)
+  "Skip out of any nested brackets.
+Skip forward if FORWARD is non-nil, else backward.
+If SYNTAX is non-nil it is the state returned by `syntax-ppss' at point.
+Return non-nil iff skipping was done."
+  (let ((depth (syntax-ppss-depth (or syntax (syntax-ppss))))
+       (forward (if forward -1 1)))
+    (unless (zerop depth)
+      (if (> depth 0)
+         ;; Skip forward out of nested brackets.
+         (condition-case ()            ; beware invalid syntax
+             (progn (backward-up-list (* forward depth)) t)
+           (error nil))
+       ;; Invalid syntax (too many closed brackets).
+       ;; Skip out of as many as possible.
+       (let (done)
+         (while (condition-case ()
+                    (progn (backward-up-list forward)
+                           (setq done t))
+                  (error nil)))
+         done)))))
+
+(defun python-end-of-statement ()
+  "Go to the end of the current statement and return point.
+Usually this is the start of the next line, but if this is a
+multi-line statement we need to skip over the continuation lines.
+On a comment line, go to end of line."
+  (end-of-line)
+  (while (let (comment)
+          ;; Move past any enclosing strings and sexps, or stop if
+          ;; we're in a comment.
+          (while (let ((s (syntax-ppss)))
+                   (cond ((eq 'comment (syntax-ppss-context s))
+                          (setq comment t)
+                          nil)
+                         ((eq 'string (syntax-ppss-context s))
+                          ;; Go to start of string and skip it.
+                          (goto-char (nth 8 s))
+                          (condition-case () ; beware invalid syntax
+                              (progn (forward-sexp) t)
+                            (error (end-of-line))))
+                         ((python-skip-out t s))))
+            (end-of-line))
+          (unless comment
+            (eq ?\\ (char-before))))   ; Line continued?
+    (end-of-line 2))                   ; Try next line.
+  (point))
+
+(defun python-previous-statement (&optional count)
+  "Go to start of previous statement.
+With argument COUNT, do it COUNT times.  Stop at beginning of buffer.
+Return count of statements left to move."
+  (interactive "p")
+  (unless count (setq count 1))
+  (if (< count 0)
+      (python-next-statement (- count))
+    (python-beginning-of-statement)
+    (while (and (> count 0) (not (bobp)))
+      (python-skip-comments/blanks t)
+      (python-beginning-of-statement)
+      (unless (bobp) (setq count (1- count))))
+    count))
+
+(defun python-next-statement (&optional count)
+  "Go to start of next statement.
+With argument COUNT, do it COUNT times.  Stop at end of buffer.
+Return count of statements left to move."
+  (interactive "p")
+  (unless count (setq count 1))
+  (if (< count 0)
+      (python-previous-statement (- count))
+    (beginning-of-line)
+    (while (and (> count 0) (not (eobp)))
+      (python-end-of-statement)
+      (python-skip-comments/blanks)
+      (unless (eobp)
+       (setq count (1- count))))
+    count))
+
+(defun python-beginning-of-block (&optional arg)
+  "Go to start of current block.
+With numeric arg, do it that many times.  If ARG is negative, call
+`python-end-of-block' instead.
+If point is on the first line of a block, use its outer block.
+If current statement is in column zero, don't move and return nil.
+Otherwise return non-nil."
+  (interactive "p")
+  (unless arg (setq arg 1))
+  (cond
+   ((zerop arg))
+   ((< arg 0) (python-end-of-block (- arg)))
+   (t
+    (let ((point (point)))
+      (if (or (python-comment-line-p)
+             (python-blank-line-p))
+         (python-skip-comments/blanks t))
+      (python-beginning-of-statement)
+      (let ((ci (current-indentation)))
+       (if (zerop ci)
+           (not (goto-char point))     ; return nil
+         ;; Look upwards for less indented statement.
+         (if (catch 'done
+;;; This is slower than the below.
+;;;      (while (zerop (python-previous-statement))
+;;;        (when (and (< (current-indentation) ci)
+;;;                   (python-open-block-statement-p t))
+;;;          (beginning-of-line)
+;;;          (throw 'done t)))
+               (while (and (zerop (forward-line -1)))
+                 (when (and (< (current-indentation) ci)
+                            (not (python-comment-line-p))
+                            ;; Move to beginning to save effort in case
+                            ;; this is in string.
+                            (progn (python-beginning-of-statement) t)
+                            (python-open-block-statement-p t))
+                   (beginning-of-line)
+                   (throw 'done t)))
+               (not (goto-char point))) ; Failed -- return nil
+             (python-beginning-of-block (1- arg)))))))))
+
+(defun python-end-of-block (&optional arg)
+  "Go to end of current block.
+With numeric arg, do it that many times.  If ARG is negative,
+call `python-beginning-of-block' instead.
+If current statement is in column zero and doesn't open a block,
+don't move and return nil.  Otherwise return t."
+  (interactive "p")
+  (unless arg (setq arg 1))
+  (if (< arg 0)
+      (python-beginning-of-block (- arg))
+    (while (and (> arg 0)
+               (let* ((point (point))
+                      (_ (if (python-comment-line-p)
+                             (python-skip-comments/blanks t)))
+                      (ci (current-indentation))
+                      (open (python-open-block-statement-p))
+                      opoint)
+                 (if (and (zerop ci) (not open))
+                     (not (goto-char point))
+                   (catch 'done
+                     (setq opoint (point))
+                     (while (and (zerop (python-next-statement))
+                                 (not (= opoint (point))))
+                       (setq opoint (point))
+                       (when (or (and open (<= (current-indentation) ci))
+                                 (< (current-indentation) ci))
+                         (python-skip-comments/blanks t)
+                         (beginning-of-line 2)
+                         (throw 'done t)))))))
+      (setq arg (1- arg)))
+    (zerop arg)))
+\f
+;;;; Imenu.
+
+(defvar python-recursing)
+(defun python-imenu-create-index ()
+  "`imenu-create-index-function' for Python.
+
+Makes nested Imenu menus from nested `class' and `def' statements.
+The nested menus are headed by an item referencing the outer
+definition; it has a space prepended to the name so that it sorts
+first with `imenu--sort-by-name' (though, unfortunately, sub-menus
+precede it)."
+  (unless (boundp 'python-recursing)   ; dynamically bound below
+    ;; Normal call from Imenu.
+    (goto-char (point-min))
+    ;; Without this, we can get an infloop if the buffer isn't all
+    ;; fontified.  I guess this is really a bug in syntax.el.  OTOH,
+    ;; _with_ this, imenu doesn't immediately work; I can't figure out
+    ;; what's going on, but it must be something to do with timers in
+    ;; font-lock.
+    ;; This can't be right, especially not when jit-lock is not used.  --Stef
+    ;; (unless (get-text-property (1- (point-max)) 'fontified)
+    ;;   (font-lock-fontify-region (point-min) (point-max)))
+    )
+  (let (index-alist)                   ; accumulated value to return
+    (while (re-search-forward
+           (rx line-start (0+ space)   ; leading space
+               (or (group "def") (group "class"))         ; type
+               (1+ space) (group (1+ (or word ?_))))      ; name
+           nil t)
+      (unless (python-in-string/comment)
+       (let ((pos (match-beginning 0))
+             (name (match-string-no-properties 3)))
+         (if (match-beginning 2)       ; def or class?
+             (setq name (concat "class " name)))
+         (save-restriction
+           (narrow-to-defun)
+           (let* ((python-recursing t)
+                  (sublist (python-imenu-create-index)))
+             (if sublist
+                 (progn (push (cons (concat " " name) pos) sublist)
+                        (push (cons name sublist) index-alist))
+               (push (cons name pos) index-alist)))))))
+    (unless (boundp 'python-recursing)
+      ;; Look for module variables.
+      (let (vars)
+       (goto-char (point-min))
+       (while (re-search-forward
+               (rx line-start (group (1+ (or word ?_))) (0+ space) "=")
+               nil t)
+         (unless (python-in-string/comment)
+           (push (cons (match-string 1) (match-beginning 1))
+                 vars)))
+       (setq index-alist (nreverse index-alist))
+       (if vars
+           (push (cons "Module variables"
+                       (nreverse vars))
+                 index-alist))))
+    index-alist))
+\f
+;;;; `Electric' commands.
+
+(defun python-electric-colon (arg)
+  "Insert a colon and maybe outdent the line if it is a statement like `else'.
+With numeric ARG, just insert that many colons.  With \\[universal-argument],
+just insert a single colon."
+  (interactive "*P")
+  (self-insert-command (if (not (integerp arg)) 1 arg))
+  (and (not arg)
+       (eolp)
+       (python-outdent-p)
+       (not (python-in-string/comment))
+       (> (current-indentation) (python-calculate-indentation))
+       (python-indent-line)))          ; OK, do it
+(put 'python-electric-colon 'delete-selection t)
+
+(defun python-backspace (arg)
+  "Maybe delete a level of indentation on the current line.
+Do so if point is at the end of the line's indentation.
+Otherwise just call `backward-delete-char-untabify'.
+Repeat ARG times."
+  (interactive "*p")
+  (if (or (/= (current-indentation) (current-column))
+         (bolp)
+         (python-continuation-line-p))
+      (backward-delete-char-untabify arg)
+    ;; Look for the largest valid indentation which is smaller than
+    ;; the current indentation.
+    (let ((indent 0)
+         (ci (current-indentation))
+         (indents (python-indentation-levels))
+         initial)
+      (dolist (x indents)
+       (if (< (car x) ci)
+           (setq indent (max indent (car x)))))
+      (setq initial (cdr (assq indent indents)))
+      (if (> (length initial) 0)
+         (message "Closes %s" initial))
+      (delete-horizontal-space)
+      (indent-to indent))))
+(put 'python-backspace 'delete-selection 'supersede)
+\f
+;;;; pychecker
+
+(defcustom python-check-command "pychecker --stdlib"
+  "Command used to check a Python file."
+  :type 'string
+  :group 'python)
+
+(defvar python-saved-check-command nil
+  "Internal use.")
+
+;; After `sgml-validate-command'.
+(defun python-check (command)
+  "Check a Python file (default current buffer's file).
+Runs COMMAND, a shell command, as if by `compile'.
+See `python-check-command' for the default."
+  (interactive
+   (list (read-string "Checker command: "
+                     (or python-saved-check-command
+                         (concat python-check-command " "
+                                 (let ((name (buffer-file-name)))
+                                   (if name
+                                       (file-name-nondirectory name))))))))
+  (setq python-saved-check-command command)
+  (require 'compile)                    ;To define compilation-* variables.
+  (save-some-buffers (not compilation-ask-about-save) nil)
+  (let ((compilation-error-regexp-alist
+        (cons '("(\\([^,]+\\), line \\([0-9]+\\))" 1 2)
+              compilation-error-regexp-alist)))
+    (compilation-start command)))
+\f
+;;;; Inferior mode stuff (following cmuscheme).
+
+;; Fixme: Make sure we can work with IPython.
+
+(defcustom python-python-command "python"
+  "Shell command to run Python interpreter.
+Any arguments can't contain whitespace.
+Note that IPython may not work properly; it must at least be used
+with the `-cl' flag, i.e. use `ipython -cl'."
+  :group 'python
+  :type 'string)
+
+(defcustom python-jython-command "jython"
+  "Shell command to run Jython interpreter.
+Any arguments can't contain whitespace."
+  :group 'python
+  :type 'string)
+
+(defvar python-command python-python-command
+  "Actual command used to run Python.
+May be `python-python-command' or `python-jython-command', possibly
+modified by the user.  Additional arguments are added when the command
+is used by `run-python' et al.")
+
+(defvar python-buffer nil
+  "*The current Python process buffer.
+
+Commands that send text from source buffers to Python processes have
+to choose a process to send to.  This is determined by buffer-local
+value of `python-buffer'.  If its value in the current buffer,
+i.e. both any local value and the default one, is nil, `run-python'
+and commands that send to the Python process will start a new process.
+
+Whenever \\[run-python] starts a new process, it resets the default
+value of `python-buffer' to be the new process's buffer and sets the
+buffer-local value similarly if the current buffer is in Python mode
+or Inferior Python mode, so that source buffer stays associated with a
+specific sub-process.
+
+Use \\[python-set-proc] to set the default value from a buffer with a
+local value.")
+(make-variable-buffer-local 'python-buffer)
+
+(defconst python-compilation-regexp-alist
+  ;; FIXME: maybe these should move to compilation-error-regexp-alist-alist.
+  ;;   The first already is (for CAML), but the second isn't.  Anyhow,
+  ;;   these are specific to the inferior buffer.  -- fx
+  `((,(rx line-start (1+ (any " \t")) "File \""
+         (group (1+ (not (any "\"<")))) ; avoid `<stdin>' &c
+         "\", line " (group (1+ digit)))
+     1 2)
+    (,(rx " in file " (group (1+ not-newline)) " on line "
+         (group (1+ digit)))
+     1 2))
+  "`compilation-error-regexp-alist' for inferior Python.")
+
+(defvar inferior-python-mode-map
+  (let ((map (make-sparse-keymap)))
+    ;; This will inherit from comint-mode-map.
+    (define-key map "\C-c\C-l" 'python-load-file)
+    (define-key map "\C-c\C-v" 'python-check)
+    ;; Note that we _can_ still use these commands which send to the
+    ;; Python process even at the prompt iff we have a normal prompt,
+    ;; i.e. '>>> ' and not '... '.  See the comment before
+    ;; python-send-region.  Fixme: uncomment these if we address that.
+
+    ;; (define-key map [(meta ?\t)] 'python-complete-symbol)
+    ;; (define-key map "\C-c\C-f" 'python-describe-symbol)
+    map))
+
+(defvar inferior-python-mode-syntax-table
+  (let ((st (make-syntax-table python-mode-syntax-table)))
+    ;; Don't get confused by apostrophes in the process's output (e.g. if
+    ;; you execute "help(os)").
+    (modify-syntax-entry ?\' "." st)
+    ;; Maybe we should do the same for double quotes?
+    ;; (modify-syntax-entry ?\" "." st)
+    st))
+
+;; Fixme: This should inherit some stuff from `python-mode', but I'm
+;; not sure how much: at least some keybindings, like C-c C-f;
+;; syntax?; font-locking, e.g. for triple-quoted strings?
+(define-derived-mode inferior-python-mode comint-mode "Inferior Python"
+  "Major mode for interacting with an inferior Python process.
+A Python process can be started with \\[run-python].
+
+Hooks `comint-mode-hook' and `inferior-python-mode-hook' are run in
+that order.
+
+You can send text to the inferior Python process from other buffers
+containing Python source.
+ * \\[python-switch-to-python] switches the current buffer to the Python
+    process buffer.
+ * \\[python-send-region] sends the current region to the Python process.
+ * \\[python-send-region-and-go] switches to the Python process buffer
+    after sending the text.
+For running multiple processes in multiple buffers, see `run-python' and
+`python-buffer'.
+
+\\{inferior-python-mode-map}"
+  :group 'python
+  (setq mode-line-process '(":%s"))
+  (set (make-local-variable 'comint-input-filter) 'python-input-filter)
+  (add-hook 'comint-preoutput-filter-functions #'python-preoutput-filter
+           nil t)
+  ;; Still required by `comint-redirect-send-command', for instance
+  ;; (and we need to match things like `>>> ... >>> '):
+  (set (make-local-variable 'comint-prompt-regexp)
+       (rx line-start (1+ (and (repeat 3 (any ">.")) " "))))
+  (set (make-local-variable 'compilation-error-regexp-alist)
+       python-compilation-regexp-alist)
+  (compilation-shell-minor-mode 1))
+
+(defcustom inferior-python-filter-regexp "\\`\\s-*\\S-?\\S-?\\s-*\\'"
+  "Input matching this regexp is not saved on the history list.
+Default ignores all inputs of 0, 1, or 2 non-blank characters."
+  :type 'regexp
+  :group 'python)
+
+(defun python-input-filter (str)
+  "`comint-input-filter' function for inferior Python.
+Don't save anything for STR matching `inferior-python-filter-regexp'."
+  (not (string-match inferior-python-filter-regexp str)))
+
+;; Fixme: Loses with quoted whitespace.
+(defun python-args-to-list (string)
+  (let ((where (string-match "[ \t]" string)))
+    (cond ((null where) (list string))
+         ((not (= where 0))
+          (cons (substring string 0 where)
+                (python-args-to-list (substring string (+ 1 where)))))
+         (t (let ((pos (string-match "[^ \t]" string)))
+              (if pos (python-args-to-list (substring string pos))))))))
+
+(defvar python-preoutput-result nil
+  "Data from last `_emacs_out' line seen by the preoutput filter.")
+
+(defvar python-preoutput-leftover nil)
+(defvar python-preoutput-skip-next-prompt nil)
+
+;; Using this stops us getting lines in the buffer like
+;; >>> ... ... >>>
+(defun python-preoutput-filter (s)
+  "`comint-preoutput-filter-functions' function: ignore prompts not at bol."
+  (when python-preoutput-leftover
+    (setq s (concat python-preoutput-leftover s))
+    (setq python-preoutput-leftover nil))
+  (let ((start 0)
+        (res ""))
+    ;; First process whole lines.
+    (while (string-match "\n" s start)
+      (let ((line (substring s start (setq start (match-end 0)))))
+        ;; Skip prompt if needed.
+        (when (and python-preoutput-skip-next-prompt
+                   (string-match comint-prompt-regexp line))
+          (setq python-preoutput-skip-next-prompt nil)
+          (setq line (substring line (match-end 0))))
+        ;; Recognize special _emacs_out lines.
+        (if (and (string-match "\\`_emacs_out \\(.*\\)\n\\'" line)
+                 (local-variable-p 'python-preoutput-result))
+            (progn
+              (setq python-preoutput-result (match-string 1 line))
+              (set (make-local-variable 'python-preoutput-skip-next-prompt) t))
+          (setq res (concat res line)))))
+    ;; Then process the remaining partial line.
+    (unless (zerop start) (setq s (substring s start)))
+    (cond ((and (string-match comint-prompt-regexp s)
+                ;; Drop this prompt if it follows an _emacs_out...
+                (or python-preoutput-skip-next-prompt
+                    ;; ... or if it's not gonna be inserted at BOL.
+                    ;; Maybe we could be more selective here.
+                    (if (zerop (length res))
+                        (not (bolp))
+                      (string-match ".\\'" res))))
+           ;; The need for this seems to be system-dependent:
+           ;; What is this all about, exactly?  --Stef
+           ;; (if (and (eq ?. (aref s 0)))
+           ;;     (accept-process-output (get-buffer-process (current-buffer)) 1))
+           (setq python-preoutput-skip-next-prompt nil)
+           res)
+          ((let ((end (min (length "_emacs_out ") (length s))))
+             (eq t (compare-strings s nil end "_emacs_out " nil end)))
+           ;; The leftover string is a prefix of _emacs_out so we don't know
+           ;; yet whether it's an _emacs_out or something else: wait until we
+           ;; get more output so we can resolve this ambiguity.
+           (set (make-local-variable 'python-preoutput-leftover) s)
+           res)
+          (t (concat res s)))))
+
+(autoload 'comint-check-proc "comint")
+
+;;;###autoload
+(defun run-python (&optional cmd noshow new)
+  "Run an inferior Python process, input and output via buffer *Python*.
+CMD is the Python command to run.  NOSHOW non-nil means don't show the
+buffer automatically.
+
+Normally, if there is a process already running in `python-buffer',
+switch to that buffer.  Interactively, a prefix arg allows you to edit
+the initial command line (default is `python-command'); `-i' etc. args
+will be added to this as appropriate.  A new process is started if:
+one isn't running attached to `python-buffer', or interactively the
+default `python-command', or argument NEW is non-nil.  See also the
+documentation for `python-buffer'.
+
+Runs the hook `inferior-python-mode-hook' \(after the
+`comint-mode-hook' is run).  \(Type \\[describe-mode] in the process
+buffer for a list of commands.)"
+  (interactive (if current-prefix-arg
+                  (list (read-string "Run Python: " python-command) nil t)
+                (list python-command)))
+  (unless cmd (setq cmd python-python-command))
+  (setq python-command cmd)
+  ;; Fixme: Consider making `python-buffer' buffer-local as a buffer
+  ;; (not a name) in Python buffers from which `run-python' &c is
+  ;; invoked.  Would support multiple processes better.
+  (when (or new (not (comint-check-proc python-buffer)))
+    (with-current-buffer
+        (let* ((cmdlist (append (python-args-to-list cmd) '("-i")))
+               (path (getenv "PYTHONPATH"))
+               (process-environment    ; to import emacs.py
+                (cons (concat "PYTHONPATH=" data-directory
+                              (if path (concat ":" path)))
+                      process-environment)))
+          (apply 'make-comint-in-buffer "Python"
+                 (if new (generate-new-buffer "*Python*") "*Python*")
+                 (car cmdlist) nil (cdr cmdlist)))
+      (setq-default python-buffer (current-buffer))
+      (setq python-buffer (current-buffer))
+      (accept-process-output (get-buffer-process python-buffer) 5)
+      (inferior-python-mode)
+      ;; Load function definitions we need.
+      ;; Before the preoutput function was used, this was done via -c in
+      ;; cmdlist, but that loses the banner and doesn't run the startup
+      ;; file.  The code might be inline here, but there's enough that it
+      ;; seems worth putting in a separate file, and it's probably cleaner
+      ;; to put it in a module.
+      ;; Ensure we're at a prompt before doing anything else.
+      (python-send-receive "import emacs; print '_emacs_out ()'")))
+  (if (derived-mode-p 'python-mode)
+      (setq python-buffer (default-value 'python-buffer))) ; buffer-local
+  ;; Without this, help output goes into the inferior python buffer if
+  ;; the process isn't already running.
+  (sit-for 1 t)        ;Should we use accept-process-output instead?  --Stef
+  (unless noshow (pop-to-buffer python-buffer t)))
+
+;; Fixme: We typically lose if the inferior isn't in the normal REPL,
+;; e.g. prompt is `help> '.  Probably raise an error if the form of
+;; the prompt is unexpected.  Actually, it needs to be `>>> ', not
+;; `... ', i.e. we're not inputting a block &c.  However, this may not
+;; be the place to check it, e.g. we might actually want to send
+;; commands having set up such a state.
+
+(defun python-send-command (command)
+  "Like `python-send-string' but resets `compilation-shell-minor-mode'.
+COMMAND should be a single statement."
+  ;; (assert (not (string-match "\n" command)))
+  ;; (let ((end (marker-position (process-mark (python-proc)))))
+  (with-current-buffer (process-buffer (python-proc))
+    (goto-char (point-max))
+    (compilation-forget-errors)
+    (python-send-string command)
+    (setq compilation-last-buffer (current-buffer)))
+    ;; No idea what this is for but it breaks the call to
+    ;; compilation-fake-loc in python-send-region.  -- Stef
+    ;; Must wait until this has completed before re-setting variables below.
+    ;; (python-send-receive "print '_emacs_out ()'")
+    ;; (with-current-buffer python-buffer
+    ;;   (set-marker compilation-parsing-end end))
+    ) ;;)
+
+(defun python-send-region (start end)
+  "Send the region to the inferior Python process."
+  ;; The region is evaluated from a temporary file.  This avoids
+  ;; problems with blank lines, which have different semantics
+  ;; interactively and in files.  It also saves the inferior process
+  ;; buffer filling up with interpreter prompts.  We need a Python
+  ;; function to remove the temporary file when it has been evaluated
+  ;; (though we could probably do it in Lisp with a Comint output
+  ;; filter).  This function also catches exceptions and truncates
+  ;; tracebacks not to mention the frame of the function itself.
+  ;;
+  ;; The `compilation-shell-minor-mode' parsing takes care of relating
+  ;; the reference to the temporary file to the source.
+  ;;
+  ;; Fixme: Write a `coding' header to the temp file if the region is
+  ;; non-ASCII.
+  (interactive "r")
+  (let* ((f (make-temp-file "py"))
+        (command (format "emacs.eexecfile(%S)" f))
+        (orig-start (copy-marker start)))
+    (when (save-excursion
+           (goto-char start)
+           (/= 0 (current-indentation))) ; need dummy block
+      (save-excursion
+       (goto-char orig-start)
+       ;; Wrong if we had indented code at buffer start.
+       (set-marker orig-start (line-beginning-position 0)))
+      (write-region "if True:\n" nil f nil 'nomsg))
+    (write-region start end f t 'nomsg)
+    (python-send-command command)
+    (with-current-buffer (process-buffer (python-proc))
+      ;; Tell compile.el to redirect error locations in file `f' to
+      ;; positions past marker `orig-start'.  It has to be done *after*
+      ;; `python-send-command''s call to `compilation-forget-errors'.
+      (compilation-fake-loc orig-start f))))
+
+(defun python-send-string (string)
+  "Evaluate STRING in inferior Python process."
+  (interactive "sPython command: ")
+  (comint-send-string (python-proc) string)
+  (unless (string-match "\n\\'" string)
+    ;; Make sure the text is properly LF-terminated.
+    (comint-send-string (python-proc) "\n"))
+  (when (string-match "\n[ \t].*\n?\\'" string)
+    ;; If the string contains a final indented line, add a second newline so
+    ;; as to make sure we terminate the multiline instruction.
+    (comint-send-string (python-proc) "\n")))
+
+(defun python-send-buffer ()
+  "Send the current buffer to the inferior Python process."
+  (interactive)
+  (python-send-region (point-min) (point-max)))
+
+;; Fixme: Try to define the function or class within the relevant
+;; module, not just at top level.
+(defun python-send-defun ()
+  "Send the current defun (class or method) to the inferior Python process."
+  (interactive)
+  (save-excursion (python-send-region (progn (beginning-of-defun) (point))
+                                     (progn (end-of-defun) (point)))))
+
+(defun python-switch-to-python (eob-p)
+  "Switch to the Python process buffer, maybe starting new process.
+With prefix arg, position cursor at end of buffer."
+  (interactive "P")
+  (pop-to-buffer (process-buffer (python-proc)) t) ;Runs python if needed.
+  (when eob-p
+    (push-mark)
+    (goto-char (point-max))))
+
+(defun python-send-region-and-go (start end)
+  "Send the region to the inferior Python process.
+Then switch to the process buffer."
+  (interactive "r")
+  (python-send-region start end)
+  (python-switch-to-python t))
+
+(defcustom python-source-modes '(python-mode jython-mode)
+  "Used to determine if a buffer contains Python source code.
+If a file is loaded into a buffer that is in one of these major modes,
+it is considered Python source by `python-load-file', which uses the
+value to determine defaults."
+  :type '(repeat function)
+  :group 'python)
+
+(defvar python-prev-dir/file nil
+  "Caches (directory . file) pair used in the last `python-load-file' command.
+Used for determining the default in the next one.")
+
+(autoload 'comint-get-source "comint")
+
+(defun python-load-file (file-name)
+  "Load a Python file FILE-NAME into the inferior Python process.
+If the file has extension `.py' import or reload it as a module.
+Treating it as a module keeps the global namespace clean, provides
+function location information for debugging, and supports users of
+module-qualified names."
+  (interactive (comint-get-source "Load Python file: " python-prev-dir/file
+                                 python-source-modes
+                                 t))   ; because execfile needs exact name
+  (comint-check-source file-name)     ; Check to see if buffer needs saving.
+  (setq python-prev-dir/file (cons (file-name-directory file-name)
+                                  (file-name-nondirectory file-name)))
+  (with-current-buffer (process-buffer (python-proc)) ;Runs python if needed.
+    ;; Fixme: I'm not convinced by this logic from python-mode.el.
+    (python-send-command
+     (if (string-match "\\.py\\'" file-name)
+        (let ((module (file-name-sans-extension
+                       (file-name-nondirectory file-name))))
+          (format "emacs.eimport(%S,%S)"
+                  module (file-name-directory file-name)))
+       (format "execfile(%S)" file-name)))
+    (message "%s loaded" file-name)))
+
+(defun python-proc ()
+  "Return the current Python process.
+See variable `python-buffer'.  Starts a new process if necessary."
+  ;; Fixme: Maybe should look for another active process if there
+  ;; isn't one for `python-buffer'.
+  (unless (comint-check-proc python-buffer)
+    (run-python nil t))
+  (get-buffer-process (if (derived-mode-p 'inferior-python-mode)
+                          (current-buffer)
+                        python-buffer)))
+
+(defun python-set-proc ()
+  "Set the default value of `python-buffer' to correspond to this buffer.
+If the current buffer has a local value of `python-buffer', set the
+default (global) value to that.  The associated Python process is
+the one that gets input from \\[python-send-region] et al when used
+in a buffer that doesn't have a local value of `python-buffer'."
+  (interactive)
+  (if (local-variable-p 'python-buffer)
+      (setq-default python-buffer python-buffer)
+    (error "No local value of `python-buffer'")))
+\f
+;;;; Context-sensitive help.
+
+(defconst python-dotty-syntax-table
+  (let ((table (make-syntax-table)))
+    (set-char-table-parent table python-mode-syntax-table)
+    (modify-syntax-entry ?. "_" table)
+    table)
+  "Syntax table giving `.' symbol syntax.
+Otherwise inherits from `python-mode-syntax-table'.")
+
+(defvar view-return-to-alist)
+(eval-when-compile (autoload 'help-buffer "help-fns"))
+
+(defvar python-imports)                        ; forward declaration
+
+;; Fixme: Should this actually be used instead of info-look, i.e. be
+;; bound to C-h S?  [Probably not, since info-look may work in cases
+;; where this doesn't.]
+(defun python-describe-symbol (symbol)
+  "Get help on SYMBOL using `help'.
+Interactively, prompt for symbol.
+
+Symbol may be anything recognized by the interpreter's `help'
+command -- e.g. `CALLS' -- not just variables in scope in the
+interpreter.  This only works for Python version 2.2 or newer
+since earlier interpreters don't support `help'.
+
+In some cases where this doesn't find documentation, \\[info-lookup-symbol]
+will."
+  ;; Note that we do this in the inferior process, not a separate one, to
+  ;; ensure the environment is appropriate.
+  (interactive
+   (let ((symbol (with-syntax-table python-dotty-syntax-table
+                  (current-word)))
+        (enable-recursive-minibuffers t))
+     (list (read-string (if symbol
+                           (format "Describe symbol (default %s): " symbol)
+                         "Describe symbol: ")
+                       nil nil symbol))))
+  (if (equal symbol "") (error "No symbol"))
+  ;; Ensure we have a suitable help buffer.
+  ;; Fixme: Maybe process `Related help topics' a la help xrefs and
+  ;; allow C-c C-f in help buffer.
+  (let ((temp-buffer-show-hook         ; avoid xref stuff
+        (lambda ()
+          (toggle-read-only 1)
+          (setq view-return-to-alist
+                (list (cons (selected-window) help-return-method))))))
+    (with-output-to-temp-buffer (help-buffer)
+      (with-current-buffer standard-output
+       ;; Fixme: Is this actually useful?
+       (help-setup-xref (list 'python-describe-symbol symbol) (interactive-p))
+       (set (make-local-variable 'comint-redirect-subvert-readonly) t)
+       (print-help-return-message))))
+  (comint-redirect-send-command-to-process (format "emacs.ehelp(%S, %s)"
+                                                  symbol python-imports)
+   "*Help*" (python-proc) nil nil))
+
+(add-to-list 'debug-ignored-errors "^No symbol")
+
+(defun python-send-receive (string)
+  "Send STRING to inferior Python (if any) and return result.
+The result is what follows `_emacs_out' in the output."
+  (python-send-string string)
+  (let ((proc (python-proc)))
+    (with-current-buffer (process-buffer proc)
+      (set (make-local-variable 'python-preoutput-result) nil)
+      (while (progn
+               (accept-process-output proc 5)
+               (null python-preoutput-result)))
+      (prog1 python-preoutput-result
+        (kill-local-variable 'python-preoutput-result)))))
+
+;; Fixme:  Is there anything reasonable we can do with random methods?
+;; (Currently only works with functions.)
+(defun python-eldoc-function ()
+  "`eldoc-print-current-symbol-info' for Python.
+Only works when point is in a function name, not its arg list, for
+instance.  Assumes an inferior Python is running."
+  (let ((symbol (with-syntax-table python-dotty-syntax-table
+                 (current-word))))
+    ;; This is run from timers, so inhibit-quit tends to be set.
+    (with-local-quit
+      ;; First try the symbol we're on.
+      (or (and symbol
+               (python-send-receive (format "emacs.eargs(%S, %s)"
+                                            symbol python-imports)))
+          ;; Try moving to symbol before enclosing parens.
+          (let ((s (syntax-ppss)))
+            (unless (zerop (car s))
+              (when (eq ?\( (char-after (nth 1 s)))
+                (save-excursion
+                  (goto-char (nth 1 s))
+                  (skip-syntax-backward "-")
+                  (let ((point (point)))
+                    (skip-chars-backward "a-zA-Z._")
+                    (if (< (point) point)
+                        (python-send-receive
+                         (format "emacs.eargs(%S, %s)"
+                                 (buffer-substring-no-properties (point) point)
+                                 python-imports))))))))))))
+\f
+;;;; Info-look functionality.
+
+(defun python-after-info-look ()
+  "Set up info-look for Python.
+Used with `eval-after-load'."
+  (let* ((version (let ((s (shell-command-to-string (concat python-command
+                                                           " -V"))))
+                   (string-match "^Python \\([0-9]+\\.[0-9]+\\>\\)" s)
+                   (match-string 1 s)))
+        ;; Whether info files have a Python version suffix, e.g. in Debian.
+        (versioned
+         (with-temp-buffer
+           (with-no-warnings (Info-mode))
+           (condition-case ()
+               ;; Don't use `info' because it would pop-up a *info* buffer.
+               (with-no-warnings
+                (Info-goto-node (format "(python%s-lib)Miscellaneous Index"
+                                        version))
+                t)
+             (error nil)))))
+    (info-lookup-maybe-add-help
+     :mode 'python-mode
+     :regexp "[[:alnum:]_]+"
+     :doc-spec
+     ;; Fixme: Can this reasonably be made specific to indices with
+     ;; different rules?  Is the order of indices optimal?
+     ;; (Miscellaneous in -ref first prefers lookup of keywords, for
+     ;; instance.)
+     (if versioned
+        ;; The empty prefix just gets us highlighted terms.
+        `((,(concat "(python" version "-ref)Miscellaneous Index") nil "")
+          (,(concat "(python" version "-ref)Module Index" nil ""))
+          (,(concat "(python" version "-ref)Function-Method-Variable Index"
+                    nil ""))
+          (,(concat "(python" version "-ref)Class-Exception-Object Index"
+                    nil ""))
+          (,(concat "(python" version "-lib)Module Index" nil ""))
+          (,(concat "(python" version "-lib)Class-Exception-Object Index"
+                    nil ""))
+          (,(concat "(python" version "-lib)Function-Method-Variable Index"
+                    nil ""))
+          (,(concat "(python" version "-lib)Miscellaneous Index" nil "")))
+       '(("(python-ref)Miscellaneous Index" nil "")
+        ("(python-ref)Module Index" nil "")
+        ("(python-ref)Function-Method-Variable Index" nil "")
+        ("(python-ref)Class-Exception-Object Index" nil "")
+        ("(python-lib)Module Index" nil "")
+        ("(python-lib)Class-Exception-Object Index" nil "")
+        ("(python-lib)Function-Method-Variable Index" nil "")
+        ("(python-lib)Miscellaneous Index" nil ""))))))
+(eval-after-load "info-look" '(python-after-info-look))
+\f
+;;;; Miscellany.
+
+(defcustom python-jython-packages '("java" "javax" "org" "com")
+  "Packages implying `jython-mode'.
+If these are imported near the beginning of the buffer, `python-mode'
+actually punts to `jython-mode'."
+  :type '(repeat string)
+  :group 'python)
+
+;; Called from `python-mode', this causes a recursive call of the
+;; mode.  See logic there to break out of the recursion.
+(defun python-maybe-jython ()
+  "Invoke `jython-mode' if the buffer appears to contain Jython code.
+The criterion is either a match for `jython-mode' via
+`interpreter-mode-alist' or an import of a module from the list
+`python-jython-packages'."
+  ;; The logic is taken from python-mode.el.
+  (save-excursion
+    (save-restriction
+      (widen)
+      (goto-char (point-min))
+      (let ((interpreter (if (looking-at auto-mode-interpreter-regexp)
+                            (match-string 2))))
+       (if (and interpreter (eq 'jython-mode
+                                (cdr (assoc (file-name-nondirectory
+                                             interpreter)
+                                            interpreter-mode-alist))))
+           (jython-mode)
+         (if (catch 'done
+               (while (re-search-forward
+                       (rx line-start (or "import" "from") (1+ space)
+                           (group (1+ (not (any " \t\n.")))))
+                       (+ (point-min) 10000) ; Probably not worth customizing.
+                       t)
+                 (if (member (match-string 1) python-jython-packages)
+                     (throw 'done t))))
+             (jython-mode)))))))
+
+(defun python-fill-paragraph (&optional justify)
+  "`fill-paragraph-function' handling comments and multi-line strings.
+If any of the current line is a comment, fill the comment or the
+paragraph of it that point is in, preserving the comment's
+indentation and initial comment characters.  Similarly if the end
+of the current line is in or at the end of a multi-line string.
+Otherwise, do nothing."
+  (interactive "P")
+  (or (fill-comment-paragraph justify)
+      ;; The `paragraph-start' and `paragraph-separate' variables
+      ;; don't allow us to delimit the last paragraph in a multi-line
+      ;; string properly, so narrow to the string and then fill around
+      ;; (the end of) the current line.
+      (save-excursion
+       (end-of-line)
+       (let* ((syntax (syntax-ppss))
+              (orig (point))
+              (start (nth 8 syntax))
+              end)
+         (cond ((eq t (nth 3 syntax))        ; in fenced string
+                (goto-char (nth 8 syntax))   ; string start
+                (setq end (condition-case () ; for unbalanced quotes
+                               (progn (forward-sexp) (point))
+                             (error (point-max)))))
+               ((re-search-backward "\\s|\\s-*\\=" nil t) ; end of fenced
+                                                          ; string
+                (forward-char)
+                (setq end (point))
+                (condition-case ()
+                    (progn (backward-sexp)
+                           (setq start (point)))
+                  (error (setq end nil)))))
+         (when end
+           (save-restriction
+             (narrow-to-region start end)
+             (goto-char orig)
+              (let ((paragraph-separate
+                     ;; Make sure that fenced-string delimiters that stand
+                     ;; on their own line stay there.
+                     (concat "[ \t]*['\"]+[ \t]*$\\|" paragraph-separate)))
+                (fill-paragraph justify))))))
+      t))
+
+(defun python-shift-left (start end &optional count)
+  "Shift lines in region COUNT (the prefix arg) columns to the left.
+COUNT defaults to `python-indent'.  If region isn't active, just shift
+current line.  The region shifted includes the lines in which START and
+END lie.  It is an error if any lines in the region are indented less than
+COUNT columns."
+  (interactive (if mark-active
+                  (list (region-beginning) (region-end) current-prefix-arg)
+                (list (point) (point) current-prefix-arg)))
+  (if count
+      (setq count (prefix-numeric-value count))
+    (setq count python-indent))
+  (when (> count 0)
+    (save-excursion
+      (goto-char start)
+      (while (< (point) end)
+       (if (and (< (current-indentation) count)
+                (not (looking-at "[ \t]*$")))
+           (error "Can't shift all lines enough"))
+       (forward-line))
+      (indent-rigidly start end (- count)))))
+
+(add-to-list 'debug-ignored-errors "^Can't shift all lines enough")
+
+(defun python-shift-right (start end &optional count)
+  "Shift lines in region COUNT (the prefix arg) columns to the right.
+COUNT defaults to `python-indent'.  If region isn't active, just shift
+current line.  The region shifted includes the lines in which START and
+END lie."
+  (interactive (if mark-active
+                  (list (region-beginning) (region-end) current-prefix-arg)
+                (list (point) (point) current-prefix-arg)))
+  (if count
+      (setq count (prefix-numeric-value count))
+    (setq count python-indent))
+  (indent-rigidly start end count))
+
+(defun python-outline-level ()
+  "`outline-level' function for Python mode.
+The level is the number of `python-indent' steps of indentation
+of current line."
+  (1+ (/ (current-indentation) python-indent)))
+
+;; Fixme: Consider top-level assignments, imports, &c.
+(defun python-current-defun ()
+  "`add-log-current-defun-function' for Python."
+  (save-excursion
+    ;; Move up the tree of nested `class' and `def' blocks until we
+    ;; get to zero indentation, accumulating the defined names.
+    (let ((start t)
+         accum)
+      (while (or start (> (current-indentation) 0))
+       (setq start nil)
+       (python-beginning-of-block)
+       (end-of-line)
+       (beginning-of-defun)
+       (if (looking-at (rx (0+ space) (or "def" "class") (1+ space)
+                           (group (1+ (or word (syntax symbol))))))
+           (push (match-string 1) accum)))
+      (if accum (mapconcat 'identity accum ".")))))
+
+(defun python-mark-block ()
+  "Mark the block around point.
+Uses `python-beginning-of-block', `python-end-of-block'."
+  (interactive)
+  (push-mark)
+  (python-beginning-of-block)
+  (push-mark (point) nil t)
+  (python-end-of-block)
+  (exchange-point-and-mark))
+
+;; Fixme:  Provide a find-function-like command to find source of a
+;; definition (separate from BicycleRepairMan).  Complicated by
+;; finding the right qualified name.
+\f
+;;;; Completion.
+
+(defvar python-imports nil
+  "String of top-level import statements updated by `python-find-imports'.")
+(make-variable-buffer-local 'python-imports)
+
+;; Fixme: Should font-lock try to run this when it deals with an import?
+;; Maybe not a good idea if it gets run multiple times when the
+;; statement is being edited, and is more likely to end up with
+;; something syntactically incorrect.
+;; However, what we should do is to trundle up the block tree from point
+;; to extract imports that appear to be in scope, and add those.
+(defun python-find-imports ()
+  "Find top-level imports, updating `python-imports'."
+  (interactive)
+  (save-excursion
+      (let (lines)
+       (goto-char (point-min))
+       (while (re-search-forward "^import\\>\\|^from\\>" nil t)
+         (unless (syntax-ppss-context (syntax-ppss))
+           (push (buffer-substring (line-beginning-position)
+                                   (line-beginning-position 2))
+                 lines)))
+       (setq python-imports
+             (if lines
+                 (apply #'concat
+;; This is probably best left out since you're unlikely to need the
+;; doc for a function in the buffer and the import will lose if the
+;; Python sub-process' working directory isn't the same as the
+;; buffer's.
+;;                      (if buffer-file-name
+;;                          (concat
+;;                           "import "
+;;                           (file-name-sans-extension
+;;                            (file-name-nondirectory buffer-file-name))))
+                        (nreverse lines))
+               "None"))
+       (when lines
+         (set-text-properties 0 (length python-imports) nil python-imports)
+         ;; The output ends up in the wrong place if the string we
+         ;; send contains newlines (from the imports).
+         (setq python-imports
+               (replace-regexp-in-string "\n" "\\n"
+                                         (format "%S" python-imports) t t))))))
+
+;; Fixme: This fails the first time if the sub-process isn't already
+;; running.  Presumably a timing issue with i/o to the process.
+(defun python-symbol-completions (symbol)
+  "Return a list of completions of the string SYMBOL from Python process.
+The list is sorted.
+Uses `python-imports' to load modules against which to complete."
+  (when symbol
+    (let ((completions
+          (condition-case ()
+              (car (read-from-string
+                    (python-send-receive
+                     (format "emacs.complete(%S,%s)" symbol python-imports))))
+            (error nil))))
+      (sort
+       ;; We can get duplicates from the above -- don't know why.
+       (delete-dups completions)
+       #'string<))))
+
+(defun python-partial-symbol ()
+  "Return the partial symbol before point (for completion)."
+  (let ((end (point))
+       (start (save-excursion
+                (and (re-search-backward
+                      (rx (or buffer-start (regexp "[^[:alnum:]._]"))
+                          (group (1+ (regexp "[[:alnum:]._]"))) point)
+                      nil t)
+                     (match-beginning 1)))))
+    (if start (buffer-substring-no-properties start end))))
+
+(defun python-complete-symbol ()
+  "Perform completion on the Python symbol preceding point.
+Repeating the command scrolls the completion window."
+  (interactive)
+  (let ((window (get-buffer-window "*Completions*")))
+    (if (and (eq last-command this-command)
+            window (window-live-p window) (window-buffer window)
+            (buffer-name (window-buffer window)))
+       (with-current-buffer (window-buffer window)
+         (if (pos-visible-in-window-p (point-max) window)
+             (set-window-start window (point-min))
+           (save-selected-window
+             (select-window window)
+             (scroll-up))))
+      ;; Do completion.
+      (let* ((end (point))
+            (symbol (python-partial-symbol))
+            (completions (python-symbol-completions symbol))
+            (completion (if completions
+                            (try-completion symbol completions))))
+       (when symbol
+         (cond ((eq completion t))
+               ((null completion)
+                (message "Can't find completion for \"%s\"" symbol)
+                (ding))
+               ((not (string= symbol completion))
+                (delete-region (- end (length symbol)) end)
+                (insert completion))
+               (t
+                (message "Making completion list...")
+                (with-output-to-temp-buffer "*Completions*"
+                  (display-completion-list completions symbol))
+                (message "Making completion list...%s" "done"))))))))
+
+(defun python-try-complete (old)
+  "Completion function for Python for use with `hippie-expand'."
+  (when (derived-mode-p 'python-mode)  ; though we only add it locally
+    (unless old
+      (let ((symbol (python-partial-symbol)))
+       (he-init-string (- (point) (length symbol)) (point))
+       (if (not (he-string-member he-search-string he-tried-table))
+           (push he-search-string he-tried-table))
+       (setq he-expand-list
+             (and symbol (python-symbol-completions symbol)))))
+    (while (and he-expand-list
+               (he-string-member (car he-expand-list) he-tried-table))
+      (pop he-expand-list))
+    (if he-expand-list
+       (progn
+         (he-substitute-string (pop he-expand-list))
+         t)
+      (if old (he-reset-string))
+      nil)))
+\f
+;;;; FFAP support
+
+(defun python-module-path (module)
+  "Function for `ffap-alist' to return path to MODULE."
+  (python-send-receive (format "emacs.modpath (%S)" module)))
+
+(eval-after-load "ffap"
+  '(push '(python-mode . python-module-path) ffap-alist))
+\f
+;;;; Skeletons
+
+(defcustom python-use-skeletons nil
+  "Non-nil means template skeletons will be automagically inserted.
+This happens when pressing \"if<SPACE>\", for example, to prompt for
+the if condition."
+  :type 'boolean
+  :group 'python)
+
+(defvar python-skeletons nil
+  "Alist of named skeletons for Python mode.
+Elements are of the form (NAME . EXPANDER-FUNCTION).")
+
+(defvar python-mode-abbrev-table nil
+  "Abbrev table for Python mode.
+The default contents correspond to the elements of `python-skeletons'.")
+(define-abbrev-table 'python-mode-abbrev-table ())
+
+(eval-when-compile
+  ;; Define a user-level skeleton and add it to `python-skeletons' and
+  ;; the abbrev table.
+(defmacro def-python-skeleton (name &rest elements)
+  (let* ((name (symbol-name name))
+        (function (intern (concat "python-insert-" name))))
+    `(progn
+       (add-to-list 'python-skeletons ',(cons name function))
+       (if python-use-skeletons
+          (define-abbrev python-mode-abbrev-table ,name "" ',function nil t))
+       (define-skeleton ,function
+        ,(format "Insert Python \"%s\" template." name)
+        ,@elements)))))
+(put 'def-python-skeleton 'lisp-indent-function 2)
+
+;; From `skeleton-further-elements':
+;;  `<': outdent a level;
+;;  `^': delete indentation on current line and also previous newline.
+;;       Not quote like `delete-indentation'.  Assumes point is at
+;;       beginning of indentation.
+
+(def-python-skeleton if
+  "Condition: "
+  "if " str ":" \n
+  > _ \n
+  ("other condition, %s: "
+   <                   ; Avoid wrong indentation after block opening.
+   "elif " str ":" \n
+   > _ \n nil)
+  (python-else) | ^)
+
+(define-skeleton python-else
+  "Auxiliary skeleton."
+  nil
+  (unless (eq ?y (read-char "Add `else' clause? (y for yes or RET for no) "))
+    (signal 'quit t))
+  < "else:" \n
+  > _ \n)
+
+(def-python-skeleton while
+  "Condition: "
+  "while " str ":" \n
+  > _ \n
+  (python-else) | ^)
+
+(def-python-skeleton for
+  "Target, %s: "
+  "for " str " in " (skeleton-read "Expression, %s: ") ":" \n
+  > _ \n
+  (python-else) | ^)
+
+(def-python-skeleton try/except
+  nil
+  "try:" \n
+  > _ \n
+  ("Exception, %s: "
+   < "except " str (python-target) ":" \n
+   > _ \n nil)
+  < "except:" \n
+  > _ \n
+  (python-else) | ^)
+
+(define-skeleton python-target
+  "Auxiliary skeleton."
+  "Target, %s: " ", " str | -2)
+
+(def-python-skeleton try/finally
+  nil
+  "try:" \n
+  > _ \n
+  < "finally:" \n
+  > _ \n)
+
+(def-python-skeleton def
+  "Name: "
+  "def " str " (" ("Parameter, %s: " (unless (equal ?\( (char-before)) ", ")
+                    str) "):" \n
+  "\"\"\"" @ " \"\"\"" \n          ; Fixme: syntaxification wrong for """"""
+  > _ \n)
+
+(def-python-skeleton class
+  "Name: "
+  "class " str " (" ("Inheritance, %s: "
+                    (unless (equal ?\( (char-before)) ", ")
+                    str)
+  & ")" | -2                           ; close list or remove opening
+  ":" \n
+  "\"\"\"" @ " \"\"\"" \n
+  > _ \n)
+
+(defvar python-default-template "if"
+  "Default template to expand by `python-expand-template'.
+Updated on each expansion.")
+
+(defun python-expand-template (name)
+  "Expand template named NAME.
+Interactively, prompt for the name with completion."
+  (interactive
+   (list (completing-read (format "Template to expand (default %s): "
+                                 python-default-template)
+                         python-skeletons nil t)))
+  (if (equal "" name)
+      (setq name python-default-template)
+    (setq python-default-template name))
+  (let ((func (cdr (assoc name python-skeletons))))
+    (if func
+       (funcall func)
+      (error "Undefined template: %s" name))))
+\f
+;;;; Bicycle Repair Man support
+
+(autoload 'pymacs-load "pymacs" nil t)
+(autoload 'brm-init "bikemacs")
+
+;; I'm not sure how useful BRM really is, and it's certainly dangerous
+;; the way it modifies files outside Emacs...  Also note that the
+;; current BRM loses with tabs used for indentation -- I submitted a
+;; fix <URL:http://www.loveshack.ukfsn.org/emacs/bikeemacs.py.diff>.
+(defun python-setup-brm ()
+  "Set up Bicycle Repair Man refactoring tool (if available).
+
+Note that the `refactoring' features change files independently of
+Emacs and may modify and save the contents of the current buffer
+without confirmation."
+  (interactive)
+  (condition-case data
+      (unless (fboundp 'brm-rename)
+       (pymacs-load "bikeemacs" "brm-") ; first line of normal recipe
+       (let ((py-mode-map (make-sparse-keymap)) ; it assumes this
+             (features (cons 'python-mode features))) ; and requires this
+         (brm-init))                   ; second line of normal recipe
+        (remove-hook 'python-mode-hook ; undo this from `brm-init'
+                     '(lambda () (easy-menu-add brm-menu)))
+        (easy-menu-define
+          python-brm-menu python-mode-map
+          "Bicycle Repair Man"
+          '("BicycleRepairMan"
+            :help "Interface to navigation and refactoring tool"
+            "Queries"
+            ["Find References" brm-find-references
+             :help "Find references to name at point in compilation buffer"]
+            ["Find Definition" brm-find-definition
+             :help "Find definition of name at point"]
+            "-"
+            "Refactoring"
+            ["Rename" brm-rename
+             :help "Replace name at point with a new name everywhere"]
+            ["Extract Method" brm-extract-method
+             :active (and mark-active (not buffer-read-only))
+             :help "Replace statements in region with a method"]
+            ["Extract Local Variable" brm-extract-local-variable
+             :active (and mark-active (not buffer-read-only))
+             :help "Replace expression in region with an assignment"]
+            ["Inline Local Variable" brm-inline-local-variable
+             :help
+             "Substitute uses of variable at point with its definition"]
+            ;; Fixme:  Should check for anything to revert.
+            ["Undo Last Refactoring" brm-undo :help ""])))
+    (error (error "Bicyclerepairman setup failed: %s" data))))
+\f
+;;;; Modes.
+
+(defvar outline-heading-end-regexp)
+(defvar eldoc-documentation-function)
+
+;; Stuff to allow expanding abbrevs with non-word constituents.
+(defun python-abbrev-pc-hook ()
+  "Set the syntax table before possibly expanding abbrevs."
+  (remove-hook 'post-command-hook 'python-abbrev-pc-hook t)
+  (set-syntax-table python-mode-syntax-table))
+
+(defvar python-abbrev-syntax-table
+  (copy-syntax-table python-mode-syntax-table)
+  "Syntax table used when expanding abbrevs.")
+
+(defun python-pea-hook ()
+  "Reset the syntax table after possibly expanding abbrevs."
+  (set-syntax-table python-abbrev-syntax-table)
+  (add-hook 'post-command-hook 'python-abbrev-pc-hook nil t))
+(modify-syntax-entry ?/ "w" python-abbrev-syntax-table)
+
+(defvar python-mode-running)            ;Dynamically scoped var.
+
+;;;###autoload
+(define-derived-mode python-mode fundamental-mode "Python"
+  "Major mode for editing Python files.
+Font Lock mode is currently required for correct parsing of the source.
+See also `jython-mode', which is actually invoked if the buffer appears to
+contain Jython code.  See also `run-python' and associated Python mode
+commands for running Python under Emacs.
+
+The Emacs commands which work with `defun's, e.g. \\[beginning-of-defun], deal
+with nested `def' and `class' blocks.  They take the innermost one as
+current without distinguishing method and class definitions.  Used multiple
+times, they move over others at the same indentation level until they reach
+the end of definitions at that level, when they move up a level.
+\\<python-mode-map>
+Colon is electric: it outdents the line if appropriate, e.g. for
+an else statement.  \\[python-backspace] at the beginning of an indented statement
+deletes a level of indentation to close the current block; otherwise it
+deletes a character backward.  TAB indents the current line relative to
+the preceding code.  Successive TABs, with no intervening command, cycle
+through the possibilities for indentation on the basis of enclosing blocks.
+
+\\[fill-paragraph] fills comments and multi-line strings appropriately, but has no
+effect outside them.
+
+Supports Eldoc mode (only for functions, using a Python process),
+Info-Look and Imenu.  In Outline minor mode, `class' and `def'
+lines count as headers.  Symbol completion is available in the
+same way as in the Python shell using the `rlcompleter' module
+and this is added to the Hippie Expand functions locally if
+Hippie Expand mode is turned on.  Completion of symbols of the
+form x.y only works if the components are literal
+module/attribute names, not variables.  An abbrev table is set up
+with skeleton expansions for compound statement templates.
+
+\\{python-mode-map}"
+  :group 'python
+  (set (make-local-variable 'font-lock-defaults)
+       '(python-font-lock-keywords nil nil nil nil
+                                  (font-lock-syntactic-keywords
+                                   . python-font-lock-syntactic-keywords)
+                                  ;; This probably isn't worth it.
+                                  ;; (font-lock-syntactic-face-function
+                                  ;;  . python-font-lock-syntactic-face-function)
+                                  ))
+  (set (make-local-variable 'parse-sexp-lookup-properties) t)
+  (set (make-local-variable 'parse-sexp-ignore-comments) t)
+  (set (make-local-variable 'comment-start) "# ")
+  (set (make-local-variable 'indent-line-function) #'python-indent-line)
+  (set (make-local-variable 'indent-region-function) #'python-indent-region)
+  (set (make-local-variable 'paragraph-start) "\\s-*$")
+  (set (make-local-variable 'fill-paragraph-function) 'python-fill-paragraph)
+  (set (make-local-variable 'require-final-newline) mode-require-final-newline)
+  (set (make-local-variable 'add-log-current-defun-function)
+       #'python-current-defun)
+  (set (make-local-variable 'outline-regexp)
+       (rx (* space) (or "class" "def" "elif" "else" "except" "finally"
+                        "for" "if" "try" "while" "with")
+          symbol-end))
+  (set (make-local-variable 'outline-heading-end-regexp) ":\\s-*\n")
+  (set (make-local-variable 'outline-level) #'python-outline-level)
+  (set (make-local-variable 'open-paren-in-column-0-is-defun-start) nil)
+  (make-local-variable 'python-saved-check-command)
+  (set (make-local-variable 'beginning-of-defun-function)
+       'python-beginning-of-defun)
+  (set (make-local-variable 'end-of-defun-function) 'python-end-of-defun)
+  (setq imenu-create-index-function #'python-imenu-create-index)
+  (set (make-local-variable 'eldoc-documentation-function)
+       #'python-eldoc-function)
+  (add-hook 'eldoc-mode-hook
+           (lambda () (run-python nil t)) ; need it running
+           nil t)
+  ;; Fixme: should be in hideshow.  This seems to be of limited use
+  ;; since it isn't (can't be) indentation-based.  Also hide-level
+  ;; doesn't seem to work properly.
+  (add-to-list 'hs-special-modes-alist
+              `(python-mode "^\\s-*def\\>" nil "#"
+                ,(lambda (arg)
+                  (python-end-of-defun)
+                  (skip-chars-backward " \t\n"))
+                nil))
+  (set (make-local-variable 'skeleton-further-elements)
+       '((< '(backward-delete-char-untabify (min python-indent
+                                                (current-column))))
+        (^ '(- (1+ (current-indentation))))))
+  (add-hook 'pre-abbrev-expand-hook 'python-pea-hook nil t)
+  (if (featurep 'hippie-exp)
+      (set (make-local-variable 'hippie-expand-try-functions-list)
+          (cons 'python-try-complete hippie-expand-try-functions-list)))
+  ;; Python defines TABs as being 8-char wide.
+  (set (make-local-variable 'tab-width) 8)
+  (when python-guess-indent (python-guess-indent))
+  ;; Let's make it harder for the user to shoot himself in the foot.
+  (unless (= tab-width python-indent)
+    (setq indent-tabs-mode nil))
+  (set (make-local-variable 'python-command) python-python-command)
+  (python-find-imports)
+  (unless (boundp 'python-mode-running)        ; kill the recursion from jython-mode
+    (let ((python-mode-running t))
+      (python-maybe-jython))))
+
+(custom-add-option 'python-mode-hook 'imenu-add-menubar-index)
+(custom-add-option 'python-mode-hook
+                  (lambda ()
+                     "Turn off Indent Tabs mode."
+                     (set (make-local-variable 'indent-tabs-mode) nil)))
+(custom-add-option 'python-mode-hook 'turn-on-eldoc-mode)
+(custom-add-option 'python-mode-hook 'abbrev-mode)
+(custom-add-option 'python-mode-hook 'python-setup-brm)
+
+;;;###autoload
+(define-derived-mode jython-mode python-mode  "Jython"
+  "Major mode for editing Jython files.
+Like `python-mode', but sets up parameters for Jython subprocesses.
+Runs `jython-mode-hook' after `python-mode-hook'."
+  :group 'python
+  (set (make-local-variable 'python-command) python-jython-command))
+
+(provide 'python)
+(provide 'python-21)
+;; arch-tag: 6fce1d99-a704-4de9-ba19-c6e4912b0554
+;;; python.el ends here
index 2db30ceb4b296a23702ff67099856796dcacff6d..60fc4c43e7bd81d62def70f0dd64d4a0a109cc52 100644 (file)
@@ -1530,6 +1530,8 @@ with your script for an edit-interpret-debug cycle."
           "ksh")
          ((string-match "[.]csh\\>" buffer-file-name)
           "csh")
+        ((equal (file-name-nondirectory buffer-file-name) ".profile")
+          "sh")
          (t
           sh-shell-file))
    nil nil)
index 4762f5173c33e4c48ddd77fdebad35e2fe59a93f..ea86d15e557422095ec63d76e80a8aaf7c64487e 100644 (file)
 ;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters)
 ;;     Vinicius Jose Latorre <viniciusjl@ig.com.br>
 ;; Keywords: wp, print, PostScript
-;; Version: 6.7.3
+;; Version: 6.7.4
 ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
 
-(defconst ps-print-version "6.7.3"
-  "ps-print.el, v 6.7.3 <2007/02/06 vinicius>
+(defconst ps-print-version "6.7.4"
+  "ps-print.el, v 6.7.4 <2007/05/13 vinicius>
 
 Vinicius's last change version -- this file may have been edited as part of
 Emacs without changes to the version number.  When reporting bugs, please also
@@ -5817,21 +5817,27 @@ XSTART YSTART are the relative position for the first page in a sheet.")
   (ps-get-size (symbol-value font-sym) "font size" font-sym))
 
 
-(defun ps-rgb-color (color default)
-  (cond ((and color (listp color) (= (length color) 3)
-             (let ((cl color)
-                   (ok t) e)
-               (while (and ok cl)
-                 (setq e  (car cl)
-                       cl (cdr cl)
-                       ok (and (floatp e) (<= 0.0 e) (<= e 1.0))))
-               ok))
-        color)
-       ((and (floatp color) (<= 0.0 color) (<= color 1.0))
-        (list color color color))
-       ((stringp color) (ps-color-scale color))
-       (t (list default default default))
-       ))
+(defun ps-rgb-color (color unspecified default)
+  (cond
+   ;; (float float float) ==> (R G B)
+   ((and color (listp color) (= (length color) 3)
+        (let ((cl color)
+              (ok t) e)
+          (while (and ok cl)
+            (setq e  (car cl)
+                  cl (cdr cl)
+                  ok (and (floatp e) (<= 0.0 e) (<= e 1.0))))
+          ok))
+    color)
+   ;; float ==> 0.0 = black .. 1.0 = white
+   ((and (floatp color) (<= 0.0 color) (<= color 1.0))
+    (list color color color))
+   ;; "colorName" but different from "unspecified-[bf]g"
+   ((and (stringp color) (not (string= color unspecified)))
+    (ps-color-scale color))
+   ;; ok, use the default
+   (t
+    (list default default default))))
 
 
 (defun ps-begin-job (genfunc)
@@ -5913,6 +5919,7 @@ XSTART YSTART are the relative position for the first page in a sheet.")
                                 (ps-face-background-name 'default))
                                (t
                                 ps-default-bg))
+                              "unspecified-bg"
                               1.0)
        ps-default-foreground (ps-rgb-color
                               (cond
@@ -5924,6 +5931,7 @@ XSTART YSTART are the relative position for the first page in a sheet.")
                                 (ps-face-foreground-name 'default))
                                (t
                                 ps-default-fg))
+                              "unspecified-fg"
                               0.0)
        ps-default-color (and (eq ps-print-color-p t) ps-default-foreground)
        ps-current-color ps-default-color
index df983a6e23c27ca997a94e9e49dedba5bb46ff7e..daedae6100c42c9b8004d1842f1a496e38800b2d 100644 (file)
@@ -3204,7 +3204,7 @@ will pop the mark twice, and
 C-u \\[set-mark-command] \\[set-mark-command] \\[set-mark-command]
 will pop the mark three times.
 
-nil means \\[set-mark-command]'s behavior does not change
+A value of nil means \\[set-mark-command]'s behavior does not change
 after C-u \\[set-mark-command]."
   :type 'boolean
   :group 'editing-basics)
@@ -3271,12 +3271,11 @@ purposes.  See the documentation of `set-mark' for more information."
 If the last global mark pushed was not in the current buffer,
 also push LOCATION on the global mark ring.
 Display `Mark set' unless the optional second arg NOMSG is non-nil.
-In Transient Mark mode, activate mark if optional third arg ACTIVATE non-nil.
 
 Novice Emacs Lisp programmers often try to use the mark for the wrong
 purposes.  See the documentation of `set-mark' for more information.
 
-In Transient Mark mode, this does not activate the mark."
+In Transient Mark mode, activate mark if optional third arg ACTIVATE non-nil."
   (unless (null (mark t))
     (setq mark-ring (cons (copy-marker (mark-marker)) mark-ring))
     (when (> (length mark-ring) mark-ring-max)
index 84dc4dca8d88f07512cf8674e74ef961809c6db5..f57bf66a3a01286ccc5923f5aab53a8f1a7e98f1 100644 (file)
@@ -1149,21 +1149,25 @@ regardless of the value of this variable."
                 "\n")))
            :face variable-pitch "\
 Emacs FAQ\t\tFrequently asked questions and answers
-View Emacs Manual\tView the Emacs manual using Info
+View Emacs Manual\t\tView the Emacs manual using Info
 Absence of Warranty\tGNU Emacs comes with "
           :face (variable-pitch :slant oblique)
           "ABSOLUTELY NO WARRANTY\n"
           :face variable-pitch
           "\
-Copying Conditions\tConditions for redistributing and changing Emacs
+Copying Conditions\t\tConditions for redistributing and changing Emacs
 Getting New Versions\tHow to obtain the latest version of Emacs
 More Manuals / Ordering Manuals       Buying printed manuals from the FSF\n")
   (:face variable-pitch
-        "To quit a partially entered command, type "
+        "\nTo quit a partially entered command, type "
         :face default
         "Control-g"
         :face variable-pitch
-        ".\n"
+        ".
+
+Emacs Guided Tour\t\tSee http://www.gnu.org/software/emacs/tour/
+
+"
         :face (variable-pitch :weight bold)
         "Useful File menu items:\n"
         :face variable-pitch
@@ -1176,13 +1180,7 @@ More Manuals / Ordering Manuals       Buying printed manuals from the FSF\n")
         "Control-c"
         :face variable-pitch
         ")
-Recover Crashed Session\tRecover files you were editing before a crash
-
-
-
-
-
-"
+Recover Crashed Session\tRecover files you were editing before a crash\n"
           ))
   "A list of texts to show in the middle part of splash screens.
 Each element in the list should be a list of strings or pairs
index 15521decd909f0df530c6c1d53bfa95d074f3626..0da957ec3f8f12573af448700ab5437a09258a56 100644 (file)
@@ -270,10 +270,12 @@ The (secret) scrollbar interface is not implemented yet."
 
 ;;;###autoload
 (define-minor-mode t-mouse-mode
-  "Toggle t-mouse mode.
+  "Toggle t-mouse mode to use the mouse in Linux consoles.
 With prefix arg, turn t-mouse mode on iff arg is positive.
 
-Turn it on to use Emacs mouse commands, and off to use t-mouse commands."
+This allows the use of the mouse when operating on a Linux console, in the
+same way as you can use the mouse under X11.
+It requires the `mev' program, part of the `gpm' utilities."
   nil " Mouse" nil :global t
   (if t-mouse-mode
       ;; Turn it on
index cffc8a4ccccbd1dd0c4f799c17afa9ee76464256..31854e604078f8aae4d7644e27a9c4bc25cab223 100644 (file)
@@ -681,6 +681,12 @@ appear on disk when you save the tar-file's buffer."
   (goto-char (posn-point (event-end event)))
   (tar-extract))
 
+(defun tar-file-name-handler (op &rest args)
+  "Helper function for `tar-extract'."
+  (or (eq op 'file-exists-p)
+      (let ((file-name-handler-alist nil))
+       (apply op args))))
+
 (defun tar-extract (&optional other-window-p)
   "In Tar mode, extract this entry of the tar file into its own buffer."
   (interactive)
@@ -735,9 +741,19 @@ appear on disk when you save the tar-file's buffer."
                                  (save-excursion
                                    (funcall set-auto-coding-function
                                             name (- (point-max) (point)))))
-                            (car (find-operation-coding-system
-                                  'insert-file-contents
-                                  (cons name (current-buffer)) t))))
+                            ;; The following binding causes
+                            ;; find-buffer-file-type-coding-system
+                            ;; (defined on dos-w32.el) to act as if
+                            ;; the file being extracted existed, so
+                            ;; that the file's contents' encoding and
+                            ;; EOL format are auto-detected.
+                            (let ((file-name-handler-alist
+                                   (if (featurep 'dos-w32)
+                                       '(("" . tar-file-name-handler))
+                                     file-name-handler-alist)))
+                              (car (find-operation-coding-system
+                                    'insert-file-contents
+                                    (cons name (current-buffer)) t)))))
                        (multibyte enable-multibyte-characters)
                        (detected (detect-coding-region
                                   (point-min)
@@ -758,7 +774,9 @@ appear on disk when you save the tar-file's buffer."
                              (coding-system-change-text-conversion
                               coding 'raw-text)))
                    (decode-coding-region (point-min) (point-max) coding)
-                   (set-buffer-file-coding-system coding))
+                   ;; Force buffer-file-coding-system to what
+                   ;; decode-coding-region actually used.
+                   (set-buffer-file-coding-system last-coding-system-used t))
                  ;; Set the default-directory to the dir of the
                  ;; superior buffer.
                  (setq default-directory
index 51274e6f5be58ee176e08442c8f2752a00c90546..6370b40d3675a7cc9684b8ac54b73297a444c64d 100644 (file)
@@ -2104,7 +2104,8 @@ either in the current buffer or in the echo area."
         (coding (or (cdr (assq (car script-language)
                                mac-script-code-coding-systems))
                     'mac-roman)))
-    (mac-unread-string (mac-utxt-to-string text coding))))
+    (if text
+       (mac-unread-string (mac-utxt-to-string text coding)))))
 
 ;; kEventClassTextInput/kEventTextInputUpdateActiveInputArea
 (define-key mac-apple-event-map [text-input update-active-input-area]
index 7b4f73c2d1fc1c78fe54d3077fb2f84600f4b428..4e45c164ae832de26634ab32d5fb01db3215277e 100644 (file)
@@ -159,6 +159,11 @@ Leave one space between words, two at end of sentences or after colons
 and `sentence-end-without-period').
 Remove indentation from each line."
   (interactive "*r")
+  ;; Ideally, we'd want to scan the text from the end, so that changes to
+  ;; text don't affect the boundary, but the regexp we match against does
+  ;; not match as eagerly when matching backward, so we instead use
+  ;; a marker.
+  (unless (markerp end) (setq end (copy-marker end t)))
   (let ((end-spc-re (concat "\\(" (sentence-end) "\\) *\\|  +")))
     (save-excursion
       (goto-char beg)
@@ -748,7 +753,9 @@ space does not end a sentence, so don't break a line there."
     (fill-paragraph arg)))
 
 (defun fill-paragraph (arg)
-  "Fill paragraph at or after point.  Prefix ARG means justify as well.
+  "Fill paragraph at or after point.
+
+If ARG is non-nil (interactively, with prefix argument), justify as well.
 If `sentence-end-double-space' is non-nil, then period followed by one
 space does not end a sentence, so don't break a line there.
 the variable `fill-column' controls the width for filling.
index 185f2e8dea34803459017d640e495206add5b83c..e02fec1362f0ebdd0ca05fde2f8ef3a160b2cb64 100644 (file)
@@ -1961,12 +1961,8 @@ Sets `flyspell-auto-correct-previous-pos' to nil"
 But don't look beyond what's visible on the screen."
   (interactive "d")
 
-  (let (top bot)
-    (save-excursion
-      (move-to-window-line 0)
-      (setq top (point))
-      (move-to-window-line -1)
-      (setq bot (point)))
+  (let ((top (window-start))
+       (bot (window-end)))
     (save-excursion
       (save-restriction
        (narrow-to-region top bot)
@@ -2029,6 +2025,7 @@ If OPOINT is non-nil, restore point there after adjusting it for replacement."
     (error "Pop-up menus do not work on this terminal"))
   ;; use the correct dictionary
   (flyspell-accept-buffer-local-defs)
+  (or opoint (setq opoint (point-marker)))
   (let ((cursor-location (point))
        (word (flyspell-get-word nil)))
     (if (consp word)
@@ -2137,6 +2134,8 @@ If OPOINT is non-nil, restore point there after adjusting it for replacement."
 ;;*---------------------------------------------------------------------*/
 (defun flyspell-emacs-popup (event poss word)
   "The Emacs popup menu."
+  (unless window-system
+    (error "This command requires pop-up dialogs"))
   (if (not event)
       (let* ((mouse-pos  (mouse-position))
             (mouse-pos  (if (nth 1 mouse-pos)
index a3c9575d90c811232d7dcee103cfe5fb544be9c5..b274185bf177d820088e619afd7e518eb4f76c04 100644 (file)
@@ -1669,7 +1669,7 @@ quit          spell session exited."
                          ;; to avoid collapsing markers before and after
                          ;; into a single place.
                          (ispell-insert-word new-word)
-                         (delete-region (point) (+ (point) (- end start)))
+                         (delete-region (point) end)
                          ;; It is meaningless to preserve the cursor position
                          ;; inside a word that has changed.
                          (setq cursor-location (point))
@@ -1751,8 +1751,8 @@ which is in `ispell-local-dictionary-alist' or `ispell-dictionary-alist'."
            ;; return dummy word when just flagging misspellings
            (list "" (point) (point))
          (error "No word found to check!"))
-      (setq start (match-beginning 0)
-           end (point)
+      (setq start (copy-marker (match-beginning 0))
+           end (point-marker)
            word (buffer-substring-no-properties start end))
       (list word start end))))
 
@@ -2483,7 +2483,12 @@ When asynchronous processes are not supported, `run' is always returned."
 (defun ispell-start-process ()
   "Start the ispell process, with support for no asynchronous processes.
 Keeps argument list for future ispell invocations for no async support."
-  (let (args)
+  (let ((default-directory default-directory)
+       args)
+    (unless (and (file-directory-p default-directory)
+                (file-readable-p default-directory))
+      ;; Defend against bad `default-directory'.
+      (setq default-directory (expand-file-name "~/")))
     ;; Local dictionary becomes the global dictionary in use.
     (setq ispell-current-dictionary
          (or ispell-local-dictionary ispell-dictionary))
index 5e599ea10e6363719bd2fc4f586e0011eefa2795..5ac9d3fb63ed20927252e109e609749dc31e7758 100644 (file)
@@ -897,16 +897,19 @@ With prefix argument ARG, repeat this ARG times."
   ;; Show preceding or following hidden tag, depending of cursor direction.
   (let ((inhibit-point-motion-hooks t))
     (save-excursion
-      (message "Invisible tag: %s"
-              ;; Strip properties, otherwise, the text is invisible.
-              (buffer-substring-no-properties
-               (point)
-               (if (or (and (> x y)
-                            (not (eq (following-char) ?<)))
-                       (and (< x y)
-                            (eq (preceding-char) ?>)))
-                   (backward-list)
-                 (forward-list)))))))
+      (condition-case nil
+         (message "Invisible tag: %s"
+                  ;; Strip properties, otherwise, the text is invisible.
+                  (buffer-substring-no-properties
+                   (point)
+                   (if (or (and (> x y)
+                                (not (eq (following-char) ?<)))
+                           (and (< x y)
+                                (eq (preceding-char) ?>)))
+                       (backward-list)
+                     (forward-list))))
+       (error nil)))))
+
 
 \f
 (defun sgml-validate (command)
index c0a85eeb68c18534c56990e2065f4e9834bf70fc..69c3c60f912af646afd20056cb2ebec34a826ccb 100644 (file)
@@ -5333,21 +5333,25 @@ instead of the current buffer and returns the OBJECT."
 (defun table--point-entered-cell-function (&optional old-point new-point)
   "Point has entered a cell.
 Refresh the menu bar."
-  (unless table-cell-entered-state
-    (setq table-cell-entered-state t)
-    (setq table-mode-indicator t)
-    (force-mode-line-update)
-    (table--warn-incompatibility)
-    (run-hooks 'table-point-entered-cell-hook)))
+  ;; Avoid calling point-motion-hooks recursively.
+  (let ((inhibit-point-motion-hooks t))
+    (unless table-cell-entered-state
+      (setq table-cell-entered-state t)
+      (setq table-mode-indicator t)
+      (force-mode-line-update)
+      (table--warn-incompatibility)
+      (run-hooks 'table-point-entered-cell-hook))))
 
 (defun table--point-left-cell-function (&optional old-point new-point)
   "Point has left a cell.
 Refresh the menu bar."
-  (when table-cell-entered-state
-    (setq table-cell-entered-state nil)
-    (setq table-mode-indicator nil)
-    (force-mode-line-update)
-    (run-hooks 'table-point-left-cell-hook)))
+  ;; Avoid calling point-motion-hooks recursively.
+  (let ((inhibit-point-motion-hooks t))
+    (when table-cell-entered-state
+      (setq table-cell-entered-state nil)
+      (setq table-mode-indicator nil)
+      (force-mode-line-update)
+      (run-hooks 'table-point-left-cell-hook))))
 
 (defun table--warn-incompatibility ()
   "If called from interactive operation warn the know incompatibilities.
index b59ecbc3601fd36af34f5897e15f2f6571f22953..660413369f9ac8eaa1573e39447f1da0701f6eae 100644 (file)
@@ -37,7 +37,7 @@
 
 (defcustom display-time-mail-file nil
   "*File name of mail inbox file, for indicating existence of new mail.
-Non-nil and not a string means don't check for mail nil means use
+Non-nil and not a string means don't check for mail; nil means use
 default, which is system-dependent, and is the same as used by Rmail."
   :type '(choice (const :tag "None" none)
                 (const :tag "Default" nil)
@@ -94,7 +94,7 @@ past 15 minutes.  The default is to display 1 minute load average."
 
 (defcustom display-time-24hr-format nil
   "*Non-nil indicates time should be displayed as hh:mm, 0 <= hh <= 23.
-nil means 1 <= hh <= 12, and an AM/PM suffix is used."
+A value of nil means 1 <= hh <= 12, and an AM/PM suffix is used."
   :type 'boolean
   :group 'display-time)
 
index 8495f1db6d96ddee1c8e68e0ae120f66f98149e1..4856d178056c5c0320674618aaf7bc4e7556499b 100644 (file)
@@ -406,8 +406,8 @@ where
   WHERE       is a text describing the key sequences to which DEF-FUN is
               bound now (or, if it is remapped, a key sequence
               for the function it is remapped to)
-  REMARK      is a list with info about rebinding. It has either of these
-              formats:
+  REMARK      is a list with info about rebinding.  It has either of
+              these formats:
 
                 \(TEXT cua-mode)
                 \(TEXT current-binding KEY-FUN DEF-FUN KEY WHERE)
@@ -912,14 +912,14 @@ See `get-lang-string' for more information.")
 
 (defun get-lang-string (lang stringid &optional no-eng-fallback)
   "Get a language specific string for Emacs.
-In certain places Emacs can replace a string showed to the user with a language specific string.
-This function retrieves such strings.
+In certain places Emacs can replace a string shown to the user with
+a language specific string.  This function retrieves such strings.
 
-LANG is the language specification. It should be one of those
+LANG is the language specification.  It should be one of those
 strings that can be returned by `read-language-name'.  STRINGID
 is a symbol that specifies the string to retrieve.
 
-If no string is found for STRINGID in the choosen language then
+If no string is found for STRINGID in the chosen language then
 the English string is returned unless NO-ENG-FALLBACK is non-nil.
 
 See `lang-strings' for more information.
index 8c53d49fdd159fba124ee9512f4159b0834ee966..c4a48434148fa3502f0d23b0739e442170a7c9cf 100644 (file)
@@ -1,3 +1,9 @@
+2007-05-29  Chong Yidong  <cyd@stupidchicken.com>
+
+       * url-mailto.el (url-mailto): Insert body after
+       mail-header-separator if present, so that it is before signature.
+       Bug reported by Leo <sdl.web@gmail.com>.
+
 2007-04-15  Chong Yidong  <cyd@stupidchicken.com>
 
        * url-parse.el (url-generic-parse-url): Revert 2006-10-09 changes.
index 9f20989a0b18a6c943b9132fdc52a10e4af1c214..6585ba8e4581dd2a31805e89f4a10b153d6738df 100644 (file)
     (while args
       (if (string= (caar args) "body")
          (progn
-           (goto-char (point-max))
+           (goto-char (point-min))
+           (or (search-forward (concat "\n" mail-header-separator "\n") nil t)
+               (goto-char (point-max)))
            (insert (mapconcat 
                     #'(lambda (string)
                         (replace-regexp-in-string "\r\n" "\n" string))
index df66c8172933660f2d482cdb0bcca9b5626981f7..22935ab7f3b412efd567adb00cc34bd94e512b38 100644 (file)
@@ -52,7 +52,9 @@ BACKEND, use `vc-handled-backends'.")
 (defvar vc-header-alist ())
 (make-obsolete-variable 'vc-header-alist 'vc-BACKEND-header)
 
-(defcustom vc-ignore-dir-regexp "\\`\\([\\/][\\/]\\|/net/\\|/afs/\\)\\'"
+(defcustom vc-ignore-dir-regexp
+  ;; Stop SMB, automounter, AFS, and DFS host lookups.
+  "\\`\\(?:[\\/][\\/]\\|/\\(?:net\\|afs\\|\\.\\\.\\.\\)/\\)\\'"
   "Regexp matching directory names that are not under VC's control.
 The default regexp prevents fruitless and time-consuming attempts
 to determine the VC status in directories in which filenames are
@@ -313,10 +315,17 @@ If WITNESS if not found, return nil, otherwise return the root."
   ;; Represent /home/luser/foo as ~/foo so that we don't try to look for
   ;; witnesses in /home or in /.
   (setq file (abbreviate-file-name file))
-  (let ((root nil))
+  (let ((root nil)
+        (user (nth 2 (file-attributes file))))
     (while (not (or root
                    (equal file (setq file (file-name-directory file)))
                    (null file)
+                   ;; As a heuristic, we stop looking up the hierarchy of
+                   ;; directories as soon as we find a directory belonging
+                   ;; to another user.  This should save us from looking in
+                   ;; things like /net and /afs.  This assumes that all the
+                   ;; files inside a project belong to the same user.
+                   (not (equal user (nth 2 (file-attributes file))))
                    (string-match vc-ignore-dir-regexp file)))
       (if (file-exists-p (expand-file-name witness file))
          (setq root file)
index 91feeff5cea39316ab0ffbb93d4b22fb60531326..9e5ec6544d4b627bf86b2b1738703b0434a479aa 100644 (file)
@@ -27,7 +27,7 @@
 
 ;;; Code:
 
-(defconst emacs-version "22.0.99" "\
+(defconst emacs-version "22.1" "\
 Version numbers of this version of Emacs.")
 
 (defconst emacs-major-version
index 8dd9e032868f83b6f7c40e311eb070152a00f4b9..57d264d2b8e9123dd2ec0cf8ebc28f9ce7ef9e52 100644 (file)
 ;; is now controlled by the presence of a value in `view-return-to-alist'.
 (defcustom view-scroll-auto-exit nil
   "*Non-nil means scrolling past the end of buffer exits View mode.
-nil means attempting to scroll past the end of the buffer,
+A value of nil means attempting to scroll past the end of the buffer,
 only rings the bell and gives a message on how to leave."
   :type 'boolean
   :group 'view)
 
 (defcustom view-try-extend-at-buffer-end nil
- "*Non-nil means try load more of file when reaching end of buffer.
+ "*Non-nil means try to load more of file when reaching end of buffer.
 This variable is mainly intended to be temporarily set to non-nil by
 the F command in view-mode, but you can set it to t if you want the action
 for all scroll commands in view mode."
@@ -94,7 +94,7 @@ considered for restoring."
   :group 'view)
 
 (defcustom view-inhibit-help-message nil
-  "*Non-nil inhibits the help message showed upon entering View mode."
+  "*Non-nil inhibits the help message shown upon entering View mode."
   :type 'boolean
   :group 'view
   :version "22.1")
index 8ae79903d512ff8b0a7255c4b327dfeca07d4e66..a477905393782d85c0b94aa0462dcd83bd12b6bd 100644 (file)
         (+ c #x8000000 128)
       c)))
 
+(defun xterm-mouse-truncate-wrap (f)
+  "Truncate with wrap-around."
+  (condition-case nil
+      ;; First try the built-in truncate, in case there's no overflow.
+      (truncate f)
+    ;; In case of overflow, do wraparound by hand.
+    (range-error
+     ;; In our case, we wrap around every 3 days or so, so if we assume
+     ;; a maximum of 65536 wraparounds, we're safe for a couple years.
+     ;; Using a power of 2 makes rounding errors less likely.
+     (let* ((maxwrap (* 65536 2048))
+            (dbig (truncate (/ f maxwrap)))
+            (fdiff (- f (* 1.0 maxwrap dbig))))
+       (+ (truncate fdiff) (* maxwrap dbig))))))
+
+
 (defun xterm-mouse-event ()
   "Convert XTerm mouse event to Emacs mouse event."
   (let* ((type (- (xterm-mouse-event-read) #o40))
         (y (- (xterm-mouse-event-read) #o40 1))
         ;; Emulate timestamp information.  This is accurate enough
         ;; for default value of mouse-1-click-follows-link (450msec).
-        (timestamp (truncate
+        (timestamp (xterm-mouse-truncate-wrap
                     (* 1000
                        (- (float-time)
                           (or xt-mouse-epoch
@@ -206,5 +222,5 @@ down the SHIFT key while pressing the mouse button."
 
 (provide 'xt-mouse)
 
-;;; arch-tag: 84962d4e-fae9-4c13-a9d7-ef4925a4ac03
+;; arch-tag: 84962d4e-fae9-4c13-a9d7-ef4925a4ac03
 ;;; xt-mouse.el ends here
index 5396754d1425415dc48dafe8a0eae902928bb414..f6764e87e17c68249d9a6bcd68cbd3eede3f27ba 100644 (file)
@@ -1,3 +1,7 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
 2007-02-28  Glenn Morris  <rgm@gnu.org>
 
        * Makefile.in (distclean): Delete Makefile.
index d427a71e5c5f2e6749b4bfce37c3c33c6bcc89b2..5eb769f3a74a3b4bad4dfd0c42520742aafaa39a 100644 (file)
@@ -1,3 +1,17 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
+2007-05-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * INSTALL: Add note about moving self-contained application bundle
+       to non-ASCII directory.
+
+2007-04-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * INSTALL: Fix description about using colors in terminal.
+       Fix typos (/Application -> /Applications).
+
 2007-04-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
        * make-package (compver): Don't hardcode processor type.
index 1140b7efa4c1065287e916cbf70b0ac681c80ae6..9718e10da6889cc7278bcccb649dec3c3e56c500 100644 (file)
@@ -1,5 +1,5 @@
 /* Localized versions of Info.plist keys */
 
 CFBundleName = "Emacs";
-CFBundleShortVersionString = "22.0.99";
-CFBundleGetInfoString = "22.0.99, Copyright (C) 2007 Free Software Foundation, Inc.";
+CFBundleShortVersionString = "22.1";
+CFBundleGetInfoString = "22.1, Copyright (C) 2007 Free Software Foundation, Inc.";
index 3711a7e1e2d579dcfe974448aff9ceb6518df458..302317b025f33b4a03fc21d4074de9d4754e1c84 100644 (file)
@@ -21,8 +21,8 @@ must install as root using the sudo command.  However, it is not
 recommended; see the notes section below for more details.
 
 The --enable-carbon-app specifies that the Carbon GUI application
-should be installed into /Application.  If you want it to install in a
-different location, specify --enable-carbon-app=<mydir>
+should be installed into /Applications.  If you want it to install in
+different location, specify --enable-carbon-app=<mydir>
 
 You can type `make bootstrap' instead of `make' to rebuild everything,
 including byte-compiling the Lisp files.
@@ -44,7 +44,7 @@ still meaningful.
 To start Emacs as a GUI application from the terminal, the pathname to
 the executable in the bundle, i.e.,
 
-  /Application/Emacs.app/Contents/MacOS/Emacs
+  /Applications/Emacs.app/Contents/MacOS/Emacs
 
 must be typed to the shell to enable Emacs to locate its resources
 correctly.  You may want to create an alias to this path to quickly
@@ -60,8 +60,8 @@ building Emacs to run on X Window System, you need to specify like:
 Note that the Carbon-specific functions mentioned above are not
 available on the X11-enabled build.
 
-To use colors in a terminal, put the following lines in the file
-~/.termcap and log in again.
+To use colors in Terminal.app on Mac OS X 10.1, put the following
+lines in the file ~/.termcap and log in again.
 
 -----
 # added ANSI color
@@ -153,6 +153,11 @@ options to user
 
 For usage of other options, use the --help option.
 
+Note: due to the problem "Installing to a directory with non-ASCII
+characters in the name fails" mentioned in etc/PROBLEMS, you may not
+move a self-contained Emacs.app application bundle to a non-ASCII
+directory.
+
 * BUILDING EMACS ON MAC OS Classic
 
 You can use MPW-GM (Aug. 2001) to build Emacs.  MPW-GM can be
index 5c7dd9cc6f124ff15e221f2127a38d9f3fb096f8..e35a898ae28b030b66864ac221e8b027f3d3a40b 100644 (file)
@@ -219,12 +219,12 @@ resource 'FREF' (129) {
 
 resource 'vers' (1) {
        0x22,           /* Major revision in BCD */
-       0x0,            /* Minor revision in BCD */
-       alpha,  /* development, alpha, beta, or final (release) */
-       99,             /* Non-final release # */
+       0x1,            /* Minor revision in BCD */
+       final,  /* development, alpha, beta, or final (release) */
+       0,              /* Non-final release # */
        0,              /* Region code */
-       "22.0.99",      /* Short version number */
-       "22.0.99, Copyright \0xa9 2007 "
+       "22.1", /* Short version number */
+       "22.1, Copyright \0xa9 2007 "
        "Free Software Foundation, Inc." /* Long version number */
 };
 
index 61a9ddfed2e58c1b2fdbdbe6a3e2d78f16f00537..640b489472624a46a923cfd882a5f933135f629b 100644 (file)
@@ -1,3 +1,67 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
+2007-05-26  Michael Olson  <mwolson@gnu.org>
+
+       * erc.texi (Modules): Fix references to completion modules.
+
+2007-05-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+       * gnus.texi (Running NNDiary): Use ~/.gnus.el instead of gnusrc.
+
+2007-05-10  Didier Verna  <didier@xemacs.org>
+
+       * gnus.texi (Email Based Diary): New. Proper documentation for the
+       nndiary back end and the gnus-diary library.
+
+2007-05-05  Francesco Potort\e,Al\e(B  <pot@gnu.org>
+
+       * maintaining.texi (Create Tags Table): Add text about the dangers of
+       making symbolic links to tags files.  (Clarified by RMS.)
+
+2007-05-04  Karl Berry  <karl@tug.org>
+
+       * emacs.texi (EMACSVER) [smallbook]: 22.1 for printed version, not 22.
+
+2007-05-03  Karl Berry  <karl@tug.org>
+
+       * emacs.texi (EMACSVER) [smallbook]: 22 for printed version.
+
+       * .cvsignore (*.pdf): new entry.
+
+       * texinfo.tex: update from current version for better pdf generation.
+
+       * emacs.texi (\urlcolor, \linkcolor) [smallbook]: \let to \Black
+       for printing.
+
+2007-05-01  Richard Stallman  <rms@gnu.org>
+
+       * cmdargs.texi (Initial Options): Under --batch, mention --eval.
+
+2007-04-28  Glenn Morris  <rgm@gnu.org>
+
+       * ack.texi (Acknowledgments):
+       * anti.texi (Antinews):
+       * faq.texi (New in Emacs 22):
+       * programs.texi (Program Modes): Restore mention of python.el pending
+       consideration of legal status.
+
+2007-04-28  Richard Stallman  <rms@gnu.org>
+
+       * files.texi (File Names): Fixes to ~ description on MS systems.
+
+2007-04-28  Karl Berry  <karl@gnu.org>
+
+       * emacs.texi: Improve line breaks on copyright page,
+       similar layout to lispref, 8.5x11 by default.
+
+       * dired.texi (Image-Dired): Improve line break, fix typo.
+
+2007-04-27  J.D. Smith  <jdsmith@as.arizona.edu>
+
+       * idlwave.texi: Minor updates for IDLWAVE 6.1.
+
 2007-04-24  Chong Yidong  <cyd@stupidchicken.com>
 
        * programs.texi (Program Modes):
index feef74c719e7fa3fdcfe280a300dbc5a2c328177..787a85443fc022f366f53de052278c0f9dcf1dd0 100644 (file)
@@ -1213,7 +1213,7 @@ indicated in the source buffer.
 Many new modes and packages have been included in Emacs, such as Calc,
 TRAMP, URL, IDO, CUA, ERC, rcirc, Table, Image-Dired, SES, Ruler, Org,
 PGG, Flymake, Password, Printing, Reveal, wdired, t-mouse, longlines,
-savehist, Conf mode, DNS mode, etc.
+savehist, Conf mode, Python mode, DNS mode, etc.
 
 @cindex Multilingual Environment
 @item
index 24f83276b926d5090ef7fc98f57b3f0d89723638..4c7c136c1875affca315387d2442f8fe962c9a6a 100644 (file)
@@ -1,3 +1,7 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
 2007-02-10  Glenn Morris  <rgm@gnu.org>
 
        * COPYING.DJ: Remove file since it is no longer needed (see README
index b9c1be4b835377a70cf19991db76e8cdad7008fe..e251d3bd3e7843279cda0a619eddee8ec8eb4ebf 100644 (file)
@@ -1,3 +1,17 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
+2007-05-22  Eli Zaretskii  <eliz@gnu.org>
+
+       * INSTALL: Add information about where to find GDB, and warn
+       against --no-debug option to configure.bat.
+
+2007-05-19  Eli Zaretskii  <eliz@gnu.org>
+
+       * INSTALL: Fix URL of EmacsW32 site where building with image
+       support is described.
+
 2007-03-31  Eli Zaretskii  <eliz@gnu.org>
 
        * INSTALL: Mention the VCVARS32.BAT batch file for VS.NET users.
index fe5381a6f212d3771acd579f8559d23b52abb8a5..489941e1578b2c1dbacd64acccb66251d9885434 100644 (file)
     cygwin compiled gmake 3.77:          fails[1, 5]   fails[2, 5]
     cygwin compiled make 3.78.1:         fails[5]      fails[2, 5]
     cygwin compiled make 3.79.1:         fails[3, 5]   fails[2?, 5]
-    cygwin compiled make 3.80:           fails?[6]     fails?[6]
-    cygwin compiled make 3.81:           fails         fails?[6]
+    cygwin compiled make 3.80:           okay[6]       fails?[7]
+    cygwin compiled make 3.81:           fails         fails?[7]
     mingw32 compiled make 3.79.1:        okay          okay
-    mingw32 compiled make 3.80:          okay          okay[6]
-    mingw32 compiled make 3.81:          okay          okay[7]
+    mingw32 compiled make 3.80:          okay          okay[7]
+    mingw32 compiled make 3.81:          okay          okay[8]
 
   Notes:
 
     [4] may fail on Windows 9X and Windows ME; if so, install Bash.
     [5] fails when building leim due to the use of cygwin style paths.
         May work if building emacs without leim.
-    [6] not recommended; please report if you try this combination.
-    [7] tested only on Windows XP.
+    [6] need to uncomment 3 lines in nt/gmake.defs that invoke `cygpath'
+       (look for "cygpath" near line 85 of gmake.defs).
+    [7] not recommended; please report if you try this combination.
+    [8] tested only on Windows XP.
 
   Other compilers may work, but specific reports from people that have
   tried suggest that the Intel C compiler (for example) may produce an
   To configure Emacs to build with GCC or MSVC, whichever is available,
   simply change to the `nt' subdirectory and run `configure.bat' with no
   options.  To see what options are available, run `configure --help'.
+  Do NOT use the --no-debug option to configure.bat unless you are
+  absolutely sure the produced binaries will never need to be run under
+  a debugger.
 
   N.B.  It is normal to see a few error messages output while configure
   is running, when gcc support is being tested.  These cannot be
   Binaries for the image libraries (among many others) can be found at
   the GnuWin32 project.  These are built with MinGW, but they can be
   used with both GCC/MinGW and MSVC builds of Emacs.  See the info on
-  http://ourcomments.org/Emacs/EmacsW32.html for more details about
-  installing image support libraries.
+  http://ourcomments.org/Emacs/w32-build-emacs.html, under "How to Get
+  Images Support", for more details about installing image support
+  libraries.  Note specifically that, due to some packaging snafus in
+  the GnuWin32-supplied image libraries, you will need to download
+  _source_ packages for some of the libraries in order to get the
+  header files necessary for building Emacs with image support.
 
 * Building
 
 
   You should be able to debug Emacs using the debugger that is
   appropriate for the compiler you used, namely DevStudio or Windbg if
-  compiled with MSVC, or GDB if compiled with GCC.
+  compiled with MSVC, or GDB if compiled with GCC.  (GDB for Windows
+  is available from the MinGW site, http://www.mingw.org/download.shtml.)
 
   When Emacs aborts due to a fatal internal error, Emacs on Windows
   pops up an Emacs Abort Dialog asking you whether you want to debug
index 1223f7e861d521b4df47a4e1350dc0a232e290a7..2ff901864455a99bb06846c93e2bbff759c64ca7 100755 (executable)
@@ -41,11 +41,11 @@ rem  mingw32/gcc-2.92.2 make (3.77):      okay          okay[4]
 rem  cygwin compiled gmake 3.77:          fails[1,5]    fails[2,5]\r
 rem  cygwin compiled gmake 3.78.1:        fails[5]      fails[2,5]\r
 rem  cygwin compiled gmake 3.79.1:        fails[3,5]    fails[2?,5]\r
-rem  cygwin compiled make 3.80:           fails?[6]     fails?[6]\r
-rem  cygwin compiled make 3.81:           fails         fails?[6]\r
+rem  cygwin compiled make 3.80:           okay[6]       fails?[7]\r
+rem  cygwin compiled make 3.81:           fails         fails?[7]\r
 rem  mingw32 compiled make 3.79.1:        okay          okay\r
-rem  mingw32 compiled make 3.80:          okay          okay?[6]\r
-rem  mingw32 compiled make 3.81:          okay          okay[7]\r
+rem  mingw32 compiled make 3.80:          okay          okay?[7]\r
+rem  mingw32 compiled make 3.81:          okay          okay[8]\r
 rem\r
 rem [1] doesn't cope with makefiles with DOS line endings, so must mount\r
 rem     emacs source with text!=binary.\r
@@ -55,8 +55,10 @@ rem     versions of cygwin.
 rem [4] may fail on Windows 9X and Windows ME; if so, install Bash.\r
 rem [5] fails when building leim due to the use of cygwin style paths.\r
 rem     May work if building emacs without leim.\r
-rem [6] not recommended; please report if you try this combination.\r
-rem [7] tested only on Windows XP.\r
+rem [6] need to uncomment 3 lines in nt/gmake.defs that invoke `cygpath';\r
+rem            look for "cygpath" near line 85 of gmake.defs.\r
+rem [7] not recommended; please report if you try this combination.\r
+rem [8] tested only on Windows XP.\r
 rem\r
 \r
 if exist config.log del config.log\r
index 0b358494bbc0f4a9f28a3e87d842aa6cff191094..053ce2d0e41b2ef01e2696160dfbe15cd9e2f684 100644 (file)
@@ -6,8 +6,8 @@ Emacs ICON   icons\emacs.ico
 #endif
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 22,0,99,0
- PRODUCTVERSION 22,0,99,0
+ FILEVERSION 22,1,0,0
+ PRODUCTVERSION 22,1,0,0
  FILEFLAGSMASK 0x3FL
 #ifdef EMACSDEBUG
  FILEFLAGS 0x1L
@@ -24,12 +24,12 @@ BEGIN
        BEGIN
            VALUE "CompanyName", "Free Software Foundation\0"
            VALUE "FileDescription", "GNU Emacs for Windows NT/95/98/2000/ME/XP\0"
-           VALUE "FileVersion", "22, 0, 99, 0\0"
+           VALUE "FileVersion", "22, 1, 0, 0\0"
            VALUE "InternalName", "Emacs\0"
            VALUE "LegalCopyright", "Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007\0"
            VALUE "OriginalFilename", "emacs.exe"
            VALUE "ProductName", "Emacs: The extensible self-documenting text editor\0"
-           VALUE "ProductVersion", "22, 0, 99, 0\0"
+           VALUE "ProductVersion", "22, 1, 0, 0\0"
            VALUE "OLESelfRegister", "\0"
         END
      END
index c92563d3bc2f7be5a03203332fa0233bd91840c2..9d7129e82feb1bb1ef30d7413de852e2fb0aaab7 100644 (file)
@@ -1,3 +1,11 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
+2007-05-30  Ulrich Mueller  <ulm@gentoo.org>  (tiny change)
+
+       * XMakeAssoc.c (XMakeAssoc): Use malloc rather than xmalloc.
+
 2007-02-27  Glenn Morris  <rgm@gnu.org>
 
        * Imakefile: Remove unused file with no explicit legal info.
index d443084ac13089d1dc5f0fe1e23c46b73ab6346f..cf039c8f3c1f3f206be3e3ea2223219e4239d778 100644 (file)
@@ -81,7 +81,7 @@ XMakeAssoc(dpy, table, x_id, data)
        /* If we are here then the new entry should be inserted just */
        /* before the current value of "Entry". */
        /* Create a new XAssoc and load it with new provided data. */
-       new_entry = (XAssoc *) xmalloc(sizeof(XAssoc));
+       new_entry = (XAssoc *) malloc(sizeof(XAssoc));
        new_entry->display = dpy;
        new_entry->x_id = x_id;
        new_entry->data = data;
index e1d7c08aff7df9bb3481b6296885b8e99dc736fa..a2b2b022a5edc6d352fa865a8ad8dcc5cb2a7086 100644 (file)
@@ -1,3 +1,108 @@
+2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * Version 22.1 released.
+
+       * xfns.c (x_set_name_internal): Undo last change.
+
+2007-06-01  Richard Stallman  <rms@gnu.org>
+
+       * xfns.c (x_encode_text): Add GCPRO.
+       (x_set_name_internal): Separate USE_GTK and non-USE_GTK cases.
+
+2007-06-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * xfns.c (x_set_name_internal): Save encoded name before
+       x_encode_text in case string data is relocated.
+
+2007-05-31  Richard Stallman  <rms@gnu.org>
+
+       * buffer.c (syms_of_buffer): Doc fix.
+
+2007-05-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
+       around current_column call.
+
+2007-05-24  Chong Yidong  <cyd@stupidchicken.com>
+
+       * xdisp.c (redisplay_window): If first window line is a
+       continuation line, recompute the new window start instead of
+       recentering.
+
+2007-05-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c [USE_CARBON_EVENTS] (mac_handle_window_event):
+       Call mac_wakeup_from_rne on window size change.
+
+2007-05-22  Richard Stallman  <rms@gnu.org>
+
+       * xterm.c (x_connection_closed): Remove NO_RETURN.
+
+2007-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * syntax.c (skip_chars): Update syntax-table only after we checked that
+       the new location is valid.
+
+2007-05-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c (x_calc_absolute_position): Add BLOCK_INPUT around
+       mac_get_window_bounds.
+
+2007-05-17  Glenn Morris  <rgm@gnu.org>
+
+       * m/macppc.h (ORDINARY_LINK): No longer define on OpenBSD.
+
+2007-05-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
+       dead key repeat and up events.
+
+2007-05-13  Chong Yidong  <cyd@stupidchicken.com>
+
+       * xterm.c (XTread_socket): Revert last change.
+
+2007-05-12  Chong Yidong  <cyd@stupidchicken.com>
+
+       * image.c (pbm_load): Correctly check image size for greyscale pbm.
+
+       * xterm.c (XTread_socket): Yet Another Uncaught X Error Crash (YAUXEC).
+
+2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object mixup (YAILOM)
+
+2007-05-06  Richard Stallman  <rms@gnu.org>
+
+       * process.c: Undo May 3 change.
+
+2007-05-03  Per Cederqvist  <ceder@lysator.liu.se>  (tiny change)
+
+       * process.c (Faccept_process_output): Revert 2006-03-22 change so
+       that the third argument once again is in microseconds (not
+       milliseconds).  This makes it compatible with Emacs 21 and
+       earlier.  Problem found by Henrik Rindl\e,Av\e(Bw.
+
+2007-05-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
+       (Fx_popup_dialog) [MAC_OSX]: Likewise.
+
+2007-04-29  Richard Stallman  <rms@gnu.org>
+
+       * insdel.c (replace_range): For undo, record insertion first.
+
+2007-04-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * xdisp.c (try_window_reusing_current_matrix): Fix number of
+       disabled lines.
+
+2007-04-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.
+
+       * gtkutil.c (xg_update_menubar, create_menus): Create empty
+       submenu for menu bar items.
+
 2007-04-24  Chong Yidong  <cyd@stupidchicken.com>
 
        * xdisp.c (redisplay_window): Use BEG_UNCHANGED and END_UNCHANGED
 
 2007-04-16  Chong Yidong  <cyd@stupidchicken.com>
 
-       * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Set
-       garbaged flag in presence of window margins.
+       * dispnew.c (adjust_frame_glyphs_for_frame_redisplay):
+       Set garbaged flag in presence of window margins.
        (showing_window_margins_p): New function.
 
        * xdisp.c (cursor_row_p): Only end row on newline if it's a
index ba23cc6ae3317f9afacb329e675bf408ca914091..94955ed7c24de6d29ff160ce2c58ac2bc6fbe28c 100644 (file)
@@ -5986,7 +5986,7 @@ same format as a regular save would use.  */);
 The default is t, which means that text is invisible
 if it has a non-nil `invisible' property.
 If the value is a list, a text character is invisible if its `invisible'
-property is an element in that list.
+property is an element in that list (or is a list with members in common).
 If an element is a cons cell of the form (PROP . ELLIPSIS),
 then characters with property value PROP are invisible,
 and they have an ellipsis as well if ELLIPSIS is non-nil.  */);
index 2ab852d2925b9ea0a765b32f71ae09b7d1643887..37498e3b6f771aedec6b930d8c5e6ecdfc59009f 100644 (file)
@@ -4393,8 +4393,7 @@ Transposing beyond buffer boundaries is an error.  */)
       fix_start_end_in_overlays (start1, end2);
     }
 
-  signal_after_change (XINT (start1), XINT (end2 - start1),
-                      XINT (end2 - start1));
+  signal_after_change (start1, end2 - start1, end2 - start1);
   return Qnil;
 }
 
index 8dfcf84f0f2da08d7b00ab3f351236e9466a793d..02e42f74852707fce219ef9e7a3dbc0d6d2a6704 100644 (file)
@@ -2192,7 +2192,9 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb,
                                       cl_data,
                                       &group);
 
-          if (item->contents)
+          /* Create a possibly empty submenu for menu bar items, since some
+             themes don't highlight items correctly without it. */
+          if (item->contents || menu_bar_p)
             {
               GtkWidget *submenu = create_menus (item->contents,
                                                  f,
@@ -2479,8 +2481,14 @@ xg_update_menubar (menubar, f, list, iter, pos, val,
                                                  cl_data,
                                                  &group);
 
+          /* Create a possibly empty submenu for menu bar items, since some
+             themes don't highlight items correctly without it. */
+          GtkWidget *submenu = create_menus (NULL, f,
+                                             select_cb, NULL, highlight_cb,
+                                             0, 0, 0, 0, cl_data, 0);
           gtk_widget_set_name (w, MENU_ITEM_NAME);
           gtk_menu_shell_insert (GTK_MENU_SHELL (menubar), w, pos);
+          gtk_menu_item_set_submenu (GTK_MENU_ITEM (w), submenu);
 
           g_list_free (*list);
           *list = iter = gtk_container_get_children (GTK_CONTAINER (menubar));
index b8317b1e9826b771405ed652e0faaa0f116852dc..eacea4a1d972dbd1db47a23b811056ca47e008d6 100644 (file)
@@ -5742,9 +5742,13 @@ pbm_load (f, img)
     }
   else
     {
-      if (raw_p && (p + 3 * height * width > end))
+      if (raw_p
+         && ((type == PBM_GRAY)
+             ? (p + height * width > end)
+             : (p + 3 * height * width > end)))
        {
          x_destroy_x_image (ximg);
+         x_clear_image (f, img);
          image_error ("Invalid image size in image `%s'",
                       img->spec, Qnil);
          goto error;
index 7f15f7de52d40249758f1ffbe86f7303cb44b88d..65d60b6b8e335af1c41e3969624b3b1d46b3e8ec 100644 (file)
@@ -1603,8 +1603,12 @@ replace_range (from, to, new, prepare, inherit, markers)
 
   if (! EQ (current_buffer->undo_list, Qt))
     {
+      /* Record the insertion first, so that when we undo,
+        the deletion will be undone first.  Thus, undo
+        will insert before deleting, and thus will keep
+        the markers before and after this text separate.  */
+      record_insert (from + SCHARS (deletion), inschars);
       record_delete (from, deletion);
-      record_insert (from, inschars);
     }
 
   GAP_SIZE -= outgoing_insbytes;
index 117d7a11dc4d39d5a482f9d4e52dff12832fc7c3..26994575edd89caa17f9718c73d55bb2341cce33 100644 (file)
@@ -66,10 +66,6 @@ Boston, MA 02110-1301, USA.  */
 
 /* #define NO_SOCK_SIGIO */
 
-#if defined(__OpenBSD__)
-#define ORDINARY_LINK
-#endif
-
 #define UNEXEC unexelf.o
 
 #define NO_TERMIO
index c7a84df7106e55c25849e2061fe81a35d3297e7f..a5196a156ebfc6ca9df082c213d498e4d68bfa5d 100644 (file)
@@ -1011,6 +1011,11 @@ for instance using the window manager, then this produces a quit and
       DialogItemIndex item_hit;
       Lisp_Object tem;
 
+      /* Force a redisplay before showing the dialog.  If a frame is
+        created just before showing the dialog, its contents may not
+        have been fully drawn.  */
+      Fredisplay (Qt);
+
       tem = Fstring_match (concat3 (build_string ("\\("),
                                    call0 (intern ("sentence-end")),
                                    build_string ("\\)\n")),
@@ -2943,6 +2948,11 @@ mac_dialog_show (f, keymaps, title, header, error_name)
     first_wv = wv;
   }
 
+  /* Force a redisplay before showing the dialog.  If a frame is created
+     just before showing the dialog, its contents may not have been fully
+     drawn.  */
+  Fredisplay (Qt);
+
   /* Actually create the dialog.  */
 #if TARGET_API_MAC_CARBON
   menu_item_selection = create_and_show_dialog (f, first_wv);
index bee1af5ab715be8c4517fb10933b7b021e304b3d..91522eeda7a28339aa66b20b7333e63e955d31db 100644 (file)
@@ -6084,7 +6084,9 @@ x_calc_absolute_position (f)
 
   /* Find the offsets of the outside upper-left corner of
      the inner window, with respect to the outer window.  */
+  BLOCK_INPUT;
   mac_get_window_bounds (f, &inner, &outer);
+  UNBLOCK_INPUT;
 
   width_diff = (outer.right - outer.left) - (inner.right - inner.left);
   height_diff = (outer.bottom - outer.top) - (inner.bottom - inner.top);
@@ -9164,15 +9166,16 @@ mac_get_mouse_btn (EventRef ref)
 
 /* Normally, ConvertEventRefToEventRecord will correctly handle all
    events.  However the click of the mouse wheel is not converted to a
-   mouseDown or mouseUp event.  Likewise for dead key down events.
-   This calls ConvertEventRef, but then checks to see if it is a mouse
-   up/down, or a dead key down carbon event that has not been
+   mouseDown or mouseUp event.  Likewise for dead key events.  This
+   calls ConvertEventRefToEventRecord, but then checks to see if it is
+   a mouse up/down, or a dead key Carbon event that has not been
    converted, and if so, converts it by hand (to be picked up in the
    XTread_socket loop).  */
 static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
 {
   OSStatus err;
   Boolean result = ConvertEventRefToEventRecord (eventRef, eventRec);
+  EventKind action;
 
   if (result)
     return result;
@@ -9201,6 +9204,14 @@ static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
       switch (GetEventKind (eventRef))
        {
        case kEventRawKeyDown:
+         action = keyDown;
+         goto keystroke_common;
+       case kEventRawKeyRepeat:
+         action = autoKey;
+         goto keystroke_common;
+       case kEventRawKeyUp:
+         action = keyUp;
+       keystroke_common:
          {
            unsigned char char_codes;
            UInt32 key_code;
@@ -9214,7 +9225,7 @@ static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
                                       NULL, &key_code);
            if (err == noErr)
              {
-               eventRec->what = keyDown;
+               eventRec->what = action;
                eventRec->message = char_codes | ((key_code & 0xff) << 8);
                result = 1;
              }
@@ -9882,6 +9893,7 @@ mac_handle_window_event (next_handler, event, data)
              width = bounds.right - bounds.left;
              height = bounds.bottom - bounds.top;
              mac_handle_size_change (f, width, height);
+             mac_wakeup_from_rne ();
            }
        }
 
index a9e6dda81fe930a031be97636507092765c8f842..acb5d37825c1da9af5539e3c440ddcd14b2894ca 100644 (file)
@@ -1669,10 +1669,10 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
                      p = GPT_ADDR;
                      stop = endp;
                    }
+                 UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1);
                  if (! fastmap[(int) SYNTAX (p[-1])])
                    break;
                  p--, pos--;
-                 UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1);
                }
          }
       }
index 02e592901586f221b658c45d90916f222562275e..156dc1aec6c83783e36feedc99a27c2689e03a15 100644 (file)
@@ -10836,7 +10836,7 @@ redisplay_internal (preserve_echo_area)
   int must_finish = 0;
   struct text_pos tlbufpos, tlendpos;
   int number_of_visible_frames;
-  int count;
+  int count, count1;
   struct frame *sf;
   int polling_stopped_here = 0;
 
@@ -10974,6 +10974,10 @@ redisplay_internal (preserve_echo_area)
        update_mode_lines++;
     }
 
+  /* Avoid invocation of point motion hooks by `current_column' below.  */
+  count1 = SPECPDL_INDEX ();
+  specbind (Qinhibit_point_motion_hooks, Qt);
+
   /* If %c is in the mode line, update it if needed.  */
   if (!NILP (w->column_number_displayed)
       /* This alternative quickly identifies a common case
@@ -10985,6 +10989,8 @@ redisplay_internal (preserve_echo_area)
           != (int) current_column ()))  /* iftc */
     w->update_mode_line = Qt;
 
+  unbind_to (count1, Qnil);
+
   FRAME_SCROLL_BOTTOM_VPOS (XFRAME (w->frame)) = -1;
 
   /* The variable buffer_shared is set in redisplay_window and
@@ -12968,6 +12974,8 @@ redisplay_window (window, just_this_one_p)
        w->force_start = Qt;
     }
 
+ force_start:
+
   /* Handle case where place to start displaying has been specified,
      unless the specified location is outside the accessible range.  */
   if (!NILP (w->force_start)
@@ -13147,39 +13155,15 @@ redisplay_window (window, just_this_one_p)
         than a simple mouse-click.  */
       if (NILP (w->start_at_line_beg)
          && NILP (do_mouse_tracking)
-         && CHARPOS (startp) > BEGV)
+         && CHARPOS (startp) > BEGV
+         && CHARPOS (startp) > BEG + save_beg_unchanged
+         && CHARPOS (startp) <= Z - save_end_unchanged)
        {
-#if 0
-         /* The following code tried to make BEG_UNCHANGED and
-            END_UNCHANGED up to date (similar to try_window_id).
-            Is it important to do so?
-
-            The trouble is that it's a little too strict when it
-            comes to overlays: modify_overlay can call
-            BUF_COMPUTE_UNCHANGED, which alters BUF_BEG_UNCHANGED and
-            BUF_END_UNCHANGED directly without moving the gap.
-
-            This can result in spurious recentering when overlays are
-            altered in the buffer.  So unless it's proven necessary,
-            let's leave this commented out for now. -- cyd.  */
-         if (MODIFF > SAVE_MODIFF
-             || BEG_UNCHANGED + END_UNCHANGED > Z_BYTE)
-           {
-             if (GPT - BEG < BEG_UNCHANGED)
-               BEG_UNCHANGED = GPT - BEG;
-             if (Z - GPT < END_UNCHANGED)
-               END_UNCHANGED = Z - GPT;
-           }
-#endif
-
-         if (CHARPOS (startp) > BEG + save_beg_unchanged
-             && CHARPOS (startp) <= Z - save_end_unchanged)
-           {
-             /* There doesn't seems to be a simple way to find a new
-                window start that is near the old window start, so
-                we just recenter.  */
-             goto recenter;
-           }
+         w->force_start = Qt;
+         if (XMARKER (w->start)->buffer == current_buffer)
+           compute_window_start_on_continuation_line (w);
+         SET_TEXT_POS_FROM_MARKER (startp, w->start);
+         goto force_start;
        }
 
 #if GLYPH_DEBUG
@@ -13811,7 +13795,7 @@ try_window_reusing_current_matrix (w)
                         nrows_scrolled);
 
          /* Disable lines that must be updated.  */
-         for (i = 0; i < it.vpos; ++i)
+         for (i = 0; i < nrows_scrolled; ++i)
            (start_row + i)->enabled_p = 0;
 
          /* Re-compute Y positions.  */
index 03cbaaec8e2f2e481bc5dc1eeeab0fea325c3ca6..d269dfbd37fb20e9ebfac14eb11ae26919bb054b 100644 (file)
@@ -1516,6 +1516,8 @@ x_set_scroll_bar_background (f, value, oldval)
 /* Encode Lisp string STRING as a text in a format appropriate for
    XICCC (X Inter Client Communication Conventions).
 
+   This can call Lisp code, so callers must GCPRO.
+
    If STRING contains only ASCII characters, do no conversion and
    return the string data of STRING.  Otherwise, encode the text by
    CODING_SYSTEM, and return a newly allocated memory area which
@@ -1563,7 +1565,11 @@ x_encode_text (string, coding_system, selectionp, text_bytes, stringp, freep)
       && SYMBOLP (coding.pre_write_conversion)
       && !NILP (Ffboundp (coding.pre_write_conversion)))
     {
+      struct gcpro gcpro1;
+      /* We don't need to GCPRO string.  */
+      GCPRO1 (coding_system);
       string = run_pre_post_conversion_on_str (string, &coding, 1);
+      UNGCPRO;
       str = SDATA (string);
       chars = SCHARS (string);
       bytes = SBYTES (string);
@@ -1605,6 +1611,16 @@ x_set_name_internal (f, name)
        int bytes, stringp;
         int do_free_icon_value = 0, do_free_text_value = 0;
        Lisp_Object coding_system;
+#ifdef USE_GTK
+       Lisp_Object encoded_name;
+       struct gcpro gcpro1;
+
+       /* As ENCODE_UTF_8 may cause GC and relocation of string data,
+          we use it before x_encode_text that may return string data.  */
+       GCPRO1 (name);
+       encoded_name = ENCODE_UTF_8 (name);
+       UNGCPRO;
+#endif
 
        coding_system = Qcompound_text;
        /* Note: Encoding strategy
@@ -1645,7 +1661,7 @@ x_set_name_internal (f, name)
 
 #ifdef USE_GTK
         gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)),
-                              (char *) SDATA (ENCODE_UTF_8 (name)));
+                              (char *) SDATA (encoded_name));
 #else /* not USE_GTK */
        XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text);
 #endif /* not USE_GTK */
index b9aabd94ae1b758421f6b1e52ae322dad3d675f3..fd6fc960739fc6d2b3f99b1ef2b081e2e0d9f561 100644 (file)
@@ -3333,6 +3333,14 @@ xdialog_show (f, keymaps, title, header, error_name)
   /* No selection has been chosen yet.  */
   menu_item_selection = 0;
 
+  /* Force a redisplay before showing the dialog.  If a frame is created
+     just before showing the dialog, its contents may not have been fully
+     drawn, as this depends on timing of events from the X server.  Redisplay
+     is not done when a dialog is shown.  If redisplay could be done in the
+     X event loop (i.e. the X event loop does not run in a signal handler)
+     this would not be needed.  */
+  Fredisplay (Qt);
+
   /* Actually create and show the dialog.  */
   create_and_show_dialog (f, first_wv);
 
index 4f77e22ac59730d926aee6baf5508fe42677491a..bc4fd366796af217c36441b470eadeab8aabc09a 100644 (file)
@@ -366,7 +366,9 @@ static void x_check_expected_move P_ ((struct frame *, int, int));
 static void x_sync_with_move P_ ((struct frame *, int, int, int));
 static int handle_one_xevent P_ ((struct x_display_info *, XEvent *,
                                  int *, struct input_event *));
-static SIGTYPE x_connection_closed P_ ((Display *, char *)) NO_RETURN;
+/* Don't declare this NO_RETURN because we want no
+   interference with debugging failing X calls.  */
+static SIGTYPE x_connection_closed P_ ((Display *, char *));
 
 
 /* Flush display of frame F, or of all frames if F is null.  */